-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathslither.db.json
1 lines (1 loc) · 134 KB
/
slither.db.json
1
[{"elements": [{"type": "function", "name": "transferToErc", "source_mapping": {"start": 2883, "length": 1580, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Bridge", "source_mapping": {"start": 454, "length": 14483, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [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, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386], "starting_column": 1, "ending_column": 2}}, "signature": "transferToErc(ICommon.ValidatorSetArgs,ICommon.Signature[],ICommon.RelayProof)"}}, {"type": "node", "name": "IVault(vaultAddress).batchTransferToErc20(relayProof.transfers)", "source_mapping": {"start": 4233, "length": 63, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [101], "starting_column": 9, "ending_column": 72}, "type_specific_fields": {"parent": {"type": "function", "name": "transferToErc", "source_mapping": {"start": 2883, "length": 1580, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Bridge", "source_mapping": {"start": 454, "length": 14483, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [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, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386], "starting_column": 1, "ending_column": 2}}, "signature": "transferToErc(ICommon.ValidatorSetArgs,ICommon.Signature[],ICommon.RelayProof)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "transferToErc20Nonce = relayProof.batchNonce + 1", "source_mapping": {"start": 4307, "length": 48, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [103], "starting_column": 9, "ending_column": 57}, "type_specific_fields": {"parent": {"type": "function", "name": "transferToErc", "source_mapping": {"start": 2883, "length": 1580, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Bridge", "source_mapping": {"start": 454, "length": 14483, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [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, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386], "starting_column": 1, "ending_column": 2}}, "signature": "transferToErc(ICommon.ValidatorSetArgs,ICommon.Signature[],ICommon.RelayProof)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "transferToErc20Nonce"}}], "description": "Reentrancy in Bridge.transferToErc(ICommon.ValidatorSetArgs,ICommon.Signature[],ICommon.RelayProof) (src/Bridge.sol#72-106):\n\tExternal calls:\n\t- IVault(vaultAddress).batchTransferToErc20(relayProof.transfers) (src/Bridge.sol#101)\n\tState variables written after the call(s):\n\t- transferToErc20Nonce = relayProof.batchNonce + 1 (src/Bridge.sol#103)\n\tBridge.transferToErc20Nonce (src/Bridge.sol#27) can be used in cross function reentrancies:\n\t- Bridge.transferToErc20Nonce (src/Bridge.sol#27)\n", "markdown": "Reentrancy in [Bridge.transferToErc(ICommon.ValidatorSetArgs,ICommon.Signature[],ICommon.RelayProof)](src/Bridge.sol#L72-L106):\n\tExternal calls:\n\t- [IVault(vaultAddress).batchTransferToErc20(relayProof.transfers)](src/Bridge.sol#L101)\n\tState variables written after the call(s):\n\t- [transferToErc20Nonce = relayProof.batchNonce + 1](src/Bridge.sol#L103)\n\t[Bridge.transferToErc20Nonce](src/Bridge.sol#L27) can be used in cross function reentrancies:\n\t- [Bridge.transferToErc20Nonce](src/Bridge.sol#L27)\n", "first_markdown_element": "src/Bridge.sol#L72-L106", "id": "1e55b022e5cedbac618516ce814e8aa79ef2c84d6c0159b1395955caac7a8139", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "upgrade", "source_mapping": {"start": 6440, "length": 702, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Bridge", "source_mapping": {"start": 454, "length": 14483, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [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, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386], "starting_column": 1, "ending_column": 2}}, "signature": "upgrade(ICommon.ValidatorSetArgs,ICommon.Signature[],address,uint256)"}}, {"type": "node", "name": "proxy.upgradeContract(bridge,_to)", "source_mapping": {"start": 7067, "length": 36, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [173], "starting_column": 9, "ending_column": 45}, "type_specific_fields": {"parent": {"type": "function", "name": "upgrade", "source_mapping": {"start": 6440, "length": 702, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Bridge", "source_mapping": {"start": 454, "length": 14483, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [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, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386], "starting_column": 1, "ending_column": 2}}, "signature": "upgrade(ICommon.ValidatorSetArgs,ICommon.Signature[],address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "upgradeNonce = _nonce", "source_mapping": {"start": 7114, "length": 21, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [175], "starting_column": 9, "ending_column": 30}, "type_specific_fields": {"parent": {"type": "function", "name": "upgrade", "source_mapping": {"start": 6440, "length": 702, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Bridge", "source_mapping": {"start": 454, "length": 14483, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [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, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386], "starting_column": 1, "ending_column": 2}}, "signature": "upgrade(ICommon.ValidatorSetArgs,ICommon.Signature[],address,uint256)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "upgradeNonce"}}], "description": "Reentrancy in Bridge.upgrade(ICommon.ValidatorSetArgs,ICommon.Signature[],address,uint256) (src/Bridge.sol#157-176):\n\tExternal calls:\n\t- proxy.upgradeContract(bridge,_to) (src/Bridge.sol#173)\n\tState variables written after the call(s):\n\t- upgradeNonce = _nonce (src/Bridge.sol#175)\n\tBridge.upgradeNonce (src/Bridge.sol#33) can be used in cross function reentrancies:\n\t- Bridge.upgrade(ICommon.ValidatorSetArgs,ICommon.Signature[],address,uint256) (src/Bridge.sol#157-176)\n\t- Bridge.upgradeNonce (src/Bridge.sol#33)\n", "markdown": "Reentrancy in [Bridge.upgrade(ICommon.ValidatorSetArgs,ICommon.Signature[],address,uint256)](src/Bridge.sol#L157-L176):\n\tExternal calls:\n\t- [proxy.upgradeContract(bridge,_to)](src/Bridge.sol#L173)\n\tState variables written after the call(s):\n\t- [upgradeNonce = _nonce](src/Bridge.sol#L175)\n\t[Bridge.upgradeNonce](src/Bridge.sol#L33) can be used in cross function reentrancies:\n\t- [Bridge.upgrade(ICommon.ValidatorSetArgs,ICommon.Signature[],address,uint256)](src/Bridge.sol#L157-L176)\n\t- [Bridge.upgradeNonce](src/Bridge.sol#L33)\n", "first_markdown_element": "src/Bridge.sol#L157-L176", "id": "563c7dbf774e1170f08aadf2be4e192a02d5c629cb8b7725bea2599a3330da20", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "withdraw", "source_mapping": {"start": 5578, "length": 856, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Bridge", "source_mapping": {"start": 454, "length": 14483, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [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, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386], "starting_column": 1, "ending_column": 2}}, "signature": "withdraw(ICommon.ValidatorSetArgs,ICommon.Erc20Transfer[],ICommon.Signature[],uint256)"}}, {"type": "node", "name": "vault.batchTransferToErc20(transfers)", "source_mapping": {"start": 6357, "length": 37, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [152], "starting_column": 9, "ending_column": 46}, "type_specific_fields": {"parent": {"type": "function", "name": "withdraw", "source_mapping": {"start": 5578, "length": 856, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Bridge", "source_mapping": {"start": 454, "length": 14483, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [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, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386], "starting_column": 1, "ending_column": 2}}, "signature": "withdraw(ICommon.ValidatorSetArgs,ICommon.Erc20Transfer[],ICommon.Signature[],uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "withdrawNonce = _nonce", "source_mapping": {"start": 6405, "length": 22, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [154], "starting_column": 9, "ending_column": 31}, "type_specific_fields": {"parent": {"type": "function", "name": "withdraw", "source_mapping": {"start": 5578, "length": 856, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Bridge", "source_mapping": {"start": 454, "length": 14483, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [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, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386], "starting_column": 1, "ending_column": 2}}, "signature": "withdraw(ICommon.ValidatorSetArgs,ICommon.Erc20Transfer[],ICommon.Signature[],uint256)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "withdrawNonce"}}], "description": "Reentrancy in Bridge.withdraw(ICommon.ValidatorSetArgs,ICommon.Erc20Transfer[],ICommon.Signature[],uint256) (src/Bridge.sol#133-155):\n\tExternal calls:\n\t- vault.batchTransferToErc20(transfers) (src/Bridge.sol#152)\n\tState variables written after the call(s):\n\t- withdrawNonce = _nonce (src/Bridge.sol#154)\n\tBridge.withdrawNonce (src/Bridge.sol#32) can be used in cross function reentrancies:\n\t- Bridge.withdrawNonce (src/Bridge.sol#32)\n", "markdown": "Reentrancy in [Bridge.withdraw(ICommon.ValidatorSetArgs,ICommon.Erc20Transfer[],ICommon.Signature[],uint256)](src/Bridge.sol#L133-L155):\n\tExternal calls:\n\t- [vault.batchTransferToErc20(transfers)](src/Bridge.sol#L152)\n\tState variables written after the call(s):\n\t- [withdrawNonce = _nonce](src/Bridge.sol#L154)\n\t[Bridge.withdrawNonce](src/Bridge.sol#L32) can be used in cross function reentrancies:\n\t- [Bridge.withdrawNonce](src/Bridge.sol#L32)\n", "first_markdown_element": "src/Bridge.sol#L133-L155", "id": "a5174162815c71493de781d9cf588cdeeacba04cae6902e4d21105738d8b59fa", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "transferToChain", "source_mapping": {"start": 2270, "length": 522, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Bridge", "source_mapping": {"start": 454, "length": 14483, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [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, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386], "starting_column": 1, "ending_column": 2}}, "signature": "transferToChain(ICommon.ChainTransfer[],uint256)"}}, {"type": "node", "name": "IERC20(_transfers[i].from).safeTransferFrom(msg.sender,vaultAddress,_transfers[i].amount)", "source_mapping": {"start": 2509, "length": 91, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [62], "starting_column": 13, "ending_column": 104}, "type_specific_fields": {"parent": {"type": "function", "name": "transferToChain", "source_mapping": {"start": 2270, "length": 522, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Bridge", "source_mapping": {"start": 454, "length": 14483, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [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, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386], "starting_column": 1, "ending_column": 2}}, "signature": "transferToChain(ICommon.ChainTransfer[],uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "IERC20(_transfers[i].from).safeTransferFrom(msg.sender,vaultAddress,_transfers[i].amount)", "source_mapping": {"start": 2509, "length": 91, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [62], "starting_column": 13, "ending_column": 104}, "type_specific_fields": {"parent": {"type": "function", "name": "transferToChain", "source_mapping": {"start": 2270, "length": 522, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Bridge", "source_mapping": {"start": 454, "length": 14483, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [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, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386], "starting_column": 1, "ending_column": 2}}, "signature": "transferToChain(ICommon.ChainTransfer[],uint256)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "transferToChainNonce = currentNonce + 1", "source_mapping": {"start": 2674, "length": 39, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [66], "starting_column": 9, "ending_column": 48}, "type_specific_fields": {"parent": {"type": "function", "name": "transferToChain", "source_mapping": {"start": 2270, "length": 522, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Bridge", "source_mapping": {"start": 454, "length": 14483, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [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, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386], "starting_column": 1, "ending_column": 2}}, "signature": "transferToChain(ICommon.ChainTransfer[],uint256)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "transferToChainNonce"}}], "description": "Reentrancy in Bridge.transferToChain(ICommon.ChainTransfer[],uint256) (src/Bridge.sol#58-69):\n\tExternal calls:\n\t- IERC20(_transfers[i].from).safeTransferFrom(msg.sender,vaultAddress,_transfers[i].amount) (src/Bridge.sol#62)\n\tState variables written after the call(s):\n\t- transferToChainNonce = currentNonce + 1 (src/Bridge.sol#66)\n", "markdown": "Reentrancy in [Bridge.transferToChain(ICommon.ChainTransfer[],uint256)](src/Bridge.sol#L58-L69):\n\tExternal calls:\n\t- [IERC20(_transfers[i].from).safeTransferFrom(msg.sender,vaultAddress,_transfers[i].amount)](src/Bridge.sol#L62)\n\tState variables written after the call(s):\n\t- [transferToChainNonce = currentNonce + 1](src/Bridge.sol#L66)\n", "first_markdown_element": "src/Bridge.sol#L58-L69", "id": "6742ba707c2b2ed9f05661fa8f6b70f7b4123c2c76681bc581a7ab8bb53cf1ef", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_getVotingPower", "source_mapping": {"start": 11920, "length": 186, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [304, 305, 306, 307, 308, 309, 310], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Bridge", "source_mapping": {"start": 454, "length": 14483, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [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, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386], "starting_column": 1, "ending_column": 2}}, "signature": "_getVotingPower(bytes32)"}}, {"type": "node", "name": "", "source_mapping": {"start": 12020, "length": 54, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [306, 307, 308], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "_getVotingPower", "source_mapping": {"start": 11920, "length": 186, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [304, 305, 306, 307, 308, 309, 310], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Bridge", "source_mapping": {"start": 454, "length": 14483, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [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, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386], "starting_column": 1, "ending_column": 2}}, "signature": "_getVotingPower(bytes32)"}}}}], "description": "Bridge._getVotingPower(bytes32) (src/Bridge.sol#304-310) uses assembly\n\t- INLINE ASM (src/Bridge.sol#306-308)\n", "markdown": "[Bridge._getVotingPower(bytes32)](src/Bridge.sol#L304-L310) uses assembly\n\t- [INLINE ASM](src/Bridge.sol#L306-L308)\n", "first_markdown_element": "src/Bridge.sol#L304-L310", "id": "68e532ca231af9e4362d268636b2b1ed2ab4c492cb20179029dcaed98aec2c3a", "check": "assembly", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "_efficientHash", "source_mapping": {"start": 14531, "length": 361, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [375, 376, 377, 378, 379, 380, 381, 382, 383], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Bridge", "source_mapping": {"start": 454, "length": 14483, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [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, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386], "starting_column": 1, "ending_column": 2}}, "signature": "_efficientHash(bytes32,bytes32,uint8)"}}, {"type": "node", "name": "", "source_mapping": {"start": 14681, "length": 205, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [377, 378, 379, 380, 381, 382], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "_efficientHash", "source_mapping": {"start": 14531, "length": 361, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [375, 376, 377, 378, 379, 380, 381, 382, 383], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Bridge", "source_mapping": {"start": 454, "length": 14483, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [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, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386], "starting_column": 1, "ending_column": 2}}, "signature": "_efficientHash(bytes32,bytes32,uint8)"}}}}], "description": "Bridge._efficientHash(bytes32,bytes32,uint8) (src/Bridge.sol#375-383) uses assembly\n\t- INLINE ASM (src/Bridge.sol#377-382)\n", "markdown": "[Bridge._efficientHash(bytes32,bytes32,uint8)](src/Bridge.sol#L375-L383) uses assembly\n\t- [INLINE ASM](src/Bridge.sol#L377-L382)\n", "first_markdown_element": "src/Bridge.sol#L375-L383", "id": "e7789dc9eb00571fbd890724450b1698a7707f2ace0164d2a98177962f0f438b", "check": "assembly", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "multiProofVerifyCalldata", "source_mapping": {"start": 12406, "length": 278, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [318, 319, 320, 321, 322, 323, 324, 325], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Bridge", "source_mapping": {"start": 454, "length": 14483, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [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, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386], "starting_column": 1, "ending_column": 2}}, "signature": "multiProofVerifyCalldata(bytes32[],bool[],bytes32,bytes32[])"}}], "description": "Bridge.multiProofVerifyCalldata(bytes32[],bool[],bytes32,bytes32[]) (src/Bridge.sol#318-325) is never used and should be removed\n", "markdown": "[Bridge.multiProofVerifyCalldata(bytes32[],bool[],bytes32,bytes32[])](src/Bridge.sol#L318-L325) is never used and should be removed\n", "first_markdown_element": "src/Bridge.sol#L318-L325", "id": "692c3d2f060d99fcebaae7b0e73425907511cbdb0bd37c696bd7f9adfed81e75", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "pragma", "name": "^0.8.21", "source_mapping": {"start": 35, "length": 24, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [2], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".21"]}}], "description": "Pragma version^0.8.21 (src/Bridge.sol#2) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "markdown": "Pragma version[^0.8.21](src/Bridge.sol#L2) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "first_markdown_element": "src/Bridge.sol#L2", "id": "2565201a18499259ca47fffd28c3e07a4156118f0eb02976eaf3dd00538318d7", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.21", "source_mapping": {"start": 35, "length": 24, "filename_relative": "src/Proxy.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Proxy.sol", "filename_short": "src/Proxy.sol", "is_dependency": false, "lines": [2], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".21"]}}], "description": "Pragma version^0.8.21 (src/Proxy.sol#2) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "markdown": "Pragma version[^0.8.21](src/Proxy.sol#L2) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "first_markdown_element": "src/Proxy.sol#L2", "id": "ad7ba1389d2d197119d51f704ca168fe74fbd131d2a4f6f0cc5ec71ec8fdf32d", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.21", "source_mapping": {"start": 35, "length": 24, "filename_relative": "src/Token.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Token.sol", "filename_short": "src/Token.sol", "is_dependency": false, "lines": [2], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".21"]}}], "description": "Pragma version^0.8.21 (src/Token.sol#2) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "markdown": "Pragma version[^0.8.21](src/Token.sol#L2) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "first_markdown_element": "src/Token.sol#L2", "id": "b6da49d5ad94ba406b741dc4fcf9732dd6b736c7f1e55d5ae05b0ea0a2c9c2c2", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.21", "source_mapping": {"start": 38, "length": 24, "filename_relative": "src/Vault.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Vault.sol", "filename_short": "src/Vault.sol", "is_dependency": false, "lines": [2], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".21"]}}], "description": "Pragma version^0.8.21 (src/Vault.sol#2) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "markdown": "Pragma version[^0.8.21](src/Vault.sol#L2) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "first_markdown_element": "src/Vault.sol#L2", "id": "c218cc1104883187350ae6039a9576f365282d88da0c113c33fa721d45ba0697", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.21", "source_mapping": {"start": 35, "length": 24, "filename_relative": "src/interfaces/IBridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/interfaces/IBridge.sol", "filename_short": "src/interfaces/IBridge.sol", "is_dependency": false, "lines": [2], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".21"]}}], "description": "Pragma version^0.8.21 (src/interfaces/IBridge.sol#2) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "markdown": "Pragma version[^0.8.21](src/interfaces/IBridge.sol#L2) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "first_markdown_element": "src/interfaces/IBridge.sol#L2", "id": "ae73f1e0b1ae96b502599d98d3a9c9a19d4460972641a05591ba9e22466b2df9", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.21", "source_mapping": {"start": 35, "length": 24, "filename_relative": "src/interfaces/ICommon.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/interfaces/ICommon.sol", "filename_short": "src/interfaces/ICommon.sol", "is_dependency": false, "lines": [2], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".21"]}}], "description": "Pragma version^0.8.21 (src/interfaces/ICommon.sol#2) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "markdown": "Pragma version[^0.8.21](src/interfaces/ICommon.sol#L2) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "first_markdown_element": "src/interfaces/ICommon.sol#L2", "id": "ed66bf9fd70f96d421d60ddf8c6488c5f40376422875d062a83277d7af228a18", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.21", "source_mapping": {"start": 35, "length": 24, "filename_relative": "src/interfaces/IProxy.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/interfaces/IProxy.sol", "filename_short": "src/interfaces/IProxy.sol", "is_dependency": false, "lines": [2], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".21"]}}], "description": "Pragma version^0.8.21 (src/interfaces/IProxy.sol#2) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "markdown": "Pragma version[^0.8.21](src/interfaces/IProxy.sol#L2) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "first_markdown_element": "src/interfaces/IProxy.sol#L2", "id": "fa25fe4430be6cb92b53ed4e5c90a24affc59ef4b572768c2c202ec7e8866397", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.21", "source_mapping": {"start": 35, "length": 24, "filename_relative": "src/interfaces/IVault.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/interfaces/IVault.sol", "filename_short": "src/interfaces/IVault.sol", "is_dependency": false, "lines": [2], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".21"]}}], "description": "Pragma version^0.8.21 (src/interfaces/IVault.sol#2) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "markdown": "Pragma version[^0.8.21](src/interfaces/IVault.sol#L2) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "first_markdown_element": "src/interfaces/IVault.sol#L2", "id": "be0411b334a2687ef759448d638ca6204f2bcf3c750fb1fc5991b67d9c14cd0b", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [], "description": "solc-0.8.21 is not recommended for deployment\n", "markdown": "solc-0.8.21 is not recommended for deployment\n", "first_markdown_element": "", "id": "d89306001b1fa2ce11230334eb8b32e1ae6da7490b6d2bb2daf2e369120bbacf", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_transfers", "source_mapping": {"start": 2295, "length": 35, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [58], "starting_column": 30, "ending_column": 65}, "type_specific_fields": {"parent": {"type": "function", "name": "transferToChain", "source_mapping": {"start": 2270, "length": 522, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Bridge", "source_mapping": {"start": 454, "length": 14483, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [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, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386], "starting_column": 1, "ending_column": 2}}, "signature": "transferToChain(ICommon.ChainTransfer[],uint256)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter Bridge.transferToChain(ICommon.ChainTransfer[],uint256)._transfers (src/Bridge.sol#58) is not in mixedCase\n", "markdown": "Parameter [Bridge.transferToChain(ICommon.ChainTransfer[],uint256)._transfers](src/Bridge.sol#L58) is not in mixedCase\n", "first_markdown_element": "src/Bridge.sol#L58", "id": "e0432903f9054c7466ea1b65cb86b5fe0a72cda7adce2d1a41339090a2be8469", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_currentValidatorSetArgs", "source_mapping": {"start": 4506, "length": 50, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [109], "starting_column": 9, "ending_column": 59}, "type_specific_fields": {"parent": {"type": "function", "name": "updateValidatorSet", "source_mapping": {"start": 4469, "length": 1103, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Bridge", "source_mapping": {"start": 454, "length": 14483, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [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, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386], "starting_column": 1, "ending_column": 2}}, "signature": "updateValidatorSet(ICommon.ValidatorSetArgs,bytes32,bytes32,ICommon.Signature[])"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter Bridge.updateValidatorSet(ICommon.ValidatorSetArgs,bytes32,bytes32,ICommon.Signature[])._currentValidatorSetArgs (src/Bridge.sol#109) is not in mixedCase\n", "markdown": "Parameter [Bridge.updateValidatorSet(ICommon.ValidatorSetArgs,bytes32,bytes32,ICommon.Signature[])._currentValidatorSetArgs](src/Bridge.sol#L109) is not in mixedCase\n", "first_markdown_element": "src/Bridge.sol#L109", "id": "6c6f8b24289998afeeb48906505c68a15c589e3f083b3d491e31577c4bb65e22", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_bridgeValidatorSetHash", "source_mapping": {"start": 4566, "length": 31, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [110], "starting_column": 9, "ending_column": 40}, "type_specific_fields": {"parent": {"type": "function", "name": "updateValidatorSet", "source_mapping": {"start": 4469, "length": 1103, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Bridge", "source_mapping": {"start": 454, "length": 14483, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [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, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386], "starting_column": 1, "ending_column": 2}}, "signature": "updateValidatorSet(ICommon.ValidatorSetArgs,bytes32,bytes32,ICommon.Signature[])"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter Bridge.updateValidatorSet(ICommon.ValidatorSetArgs,bytes32,bytes32,ICommon.Signature[])._bridgeValidatorSetHash (src/Bridge.sol#110) is not in mixedCase\n", "markdown": "Parameter [Bridge.updateValidatorSet(ICommon.ValidatorSetArgs,bytes32,bytes32,ICommon.Signature[])._bridgeValidatorSetHash](src/Bridge.sol#L110) is not in mixedCase\n", "first_markdown_element": "src/Bridge.sol#L110", "id": "0cf19ab4aa6f551cfa000d31c3abe418c2ab9cead7226fc952b5eaa3d1fcfcab", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_governanceValidatorSetHash", "source_mapping": {"start": 4607, "length": 35, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [111], "starting_column": 9, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "function", "name": "updateValidatorSet", "source_mapping": {"start": 4469, "length": 1103, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Bridge", "source_mapping": {"start": 454, "length": 14483, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [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, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386], "starting_column": 1, "ending_column": 2}}, "signature": "updateValidatorSet(ICommon.ValidatorSetArgs,bytes32,bytes32,ICommon.Signature[])"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter Bridge.updateValidatorSet(ICommon.ValidatorSetArgs,bytes32,bytes32,ICommon.Signature[])._governanceValidatorSetHash (src/Bridge.sol#111) is not in mixedCase\n", "markdown": "Parameter [Bridge.updateValidatorSet(ICommon.ValidatorSetArgs,bytes32,bytes32,ICommon.Signature[])._governanceValidatorSetHash](src/Bridge.sol#L111) is not in mixedCase\n", "first_markdown_element": "src/Bridge.sol#L111", "id": "0cd676ac3ec30b94b7c1765e1aeb92596cda94e505b6b9afcad98f806183ddea", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_signatures", "source_mapping": {"start": 4652, "length": 32, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [112], "starting_column": 9, "ending_column": 41}, "type_specific_fields": {"parent": {"type": "function", "name": "updateValidatorSet", "source_mapping": {"start": 4469, "length": 1103, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Bridge", "source_mapping": {"start": 454, "length": 14483, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [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, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386], "starting_column": 1, "ending_column": 2}}, "signature": "updateValidatorSet(ICommon.ValidatorSetArgs,bytes32,bytes32,ICommon.Signature[])"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter Bridge.updateValidatorSet(ICommon.ValidatorSetArgs,bytes32,bytes32,ICommon.Signature[])._signatures (src/Bridge.sol#112) is not in mixedCase\n", "markdown": "Parameter [Bridge.updateValidatorSet(ICommon.ValidatorSetArgs,bytes32,bytes32,ICommon.Signature[])._signatures](src/Bridge.sol#L112) is not in mixedCase\n", "first_markdown_element": "src/Bridge.sol#L112", "id": "fe363bb23ea0655ee8e07bb8e5bdaf9d3a638b31ae87c5a1df84d85d41234b14", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_currentValidatorSetArgs", "source_mapping": {"start": 5605, "length": 50, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [134], "starting_column": 9, "ending_column": 59}, "type_specific_fields": {"parent": {"type": "function", "name": "withdraw", "source_mapping": {"start": 5578, "length": 856, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Bridge", "source_mapping": {"start": 454, "length": 14483, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [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, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386], "starting_column": 1, "ending_column": 2}}, "signature": "withdraw(ICommon.ValidatorSetArgs,ICommon.Erc20Transfer[],ICommon.Signature[],uint256)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter Bridge.withdraw(ICommon.ValidatorSetArgs,ICommon.Erc20Transfer[],ICommon.Signature[],uint256)._currentValidatorSetArgs (src/Bridge.sol#134) is not in mixedCase\n", "markdown": "Parameter [Bridge.withdraw(ICommon.ValidatorSetArgs,ICommon.Erc20Transfer[],ICommon.Signature[],uint256)._currentValidatorSetArgs](src/Bridge.sol#L134) is not in mixedCase\n", "first_markdown_element": "src/Bridge.sol#L134", "id": "718bb0e38c5500a9b785372c65b1f5b80cd65ca66d1e4be74b697748b88c886c", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_signatures", "source_mapping": {"start": 5709, "length": 32, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [136], "starting_column": 9, "ending_column": 41}, "type_specific_fields": {"parent": {"type": "function", "name": "withdraw", "source_mapping": {"start": 5578, "length": 856, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Bridge", "source_mapping": {"start": 454, "length": 14483, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [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, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386], "starting_column": 1, "ending_column": 2}}, "signature": "withdraw(ICommon.ValidatorSetArgs,ICommon.Erc20Transfer[],ICommon.Signature[],uint256)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter Bridge.withdraw(ICommon.ValidatorSetArgs,ICommon.Erc20Transfer[],ICommon.Signature[],uint256)._signatures (src/Bridge.sol#136) is not in mixedCase\n", "markdown": "Parameter [Bridge.withdraw(ICommon.ValidatorSetArgs,ICommon.Erc20Transfer[],ICommon.Signature[],uint256)._signatures](src/Bridge.sol#L136) is not in mixedCase\n", "first_markdown_element": "src/Bridge.sol#L136", "id": "f643a5c40fba5d9d8a9342c8cba8e363fc1b0d53df5cb350c1f55bc70d8b003b", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_nonce", "source_mapping": {"start": 5751, "length": 14, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [137], "starting_column": 9, "ending_column": 23}, "type_specific_fields": {"parent": {"type": "function", "name": "withdraw", "source_mapping": {"start": 5578, "length": 856, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Bridge", "source_mapping": {"start": 454, "length": 14483, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [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, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386], "starting_column": 1, "ending_column": 2}}, "signature": "withdraw(ICommon.ValidatorSetArgs,ICommon.Erc20Transfer[],ICommon.Signature[],uint256)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter Bridge.withdraw(ICommon.ValidatorSetArgs,ICommon.Erc20Transfer[],ICommon.Signature[],uint256)._nonce (src/Bridge.sol#137) is not in mixedCase\n", "markdown": "Parameter [Bridge.withdraw(ICommon.ValidatorSetArgs,ICommon.Erc20Transfer[],ICommon.Signature[],uint256)._nonce](src/Bridge.sol#L137) is not in mixedCase\n", "first_markdown_element": "src/Bridge.sol#L137", "id": "b16aa6fc82decaae1ea74a167ee2bbe6c4a7e6315702ba2092e8aa3005ff6c7d", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_currentValidatorSetArgs", "source_mapping": {"start": 6466, "length": 50, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [158], "starting_column": 9, "ending_column": 59}, "type_specific_fields": {"parent": {"type": "function", "name": "upgrade", "source_mapping": {"start": 6440, "length": 702, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Bridge", "source_mapping": {"start": 454, "length": 14483, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [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, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386], "starting_column": 1, "ending_column": 2}}, "signature": "upgrade(ICommon.ValidatorSetArgs,ICommon.Signature[],address,uint256)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter Bridge.upgrade(ICommon.ValidatorSetArgs,ICommon.Signature[],address,uint256)._currentValidatorSetArgs (src/Bridge.sol#158) is not in mixedCase\n", "markdown": "Parameter [Bridge.upgrade(ICommon.ValidatorSetArgs,ICommon.Signature[],address,uint256)._currentValidatorSetArgs](src/Bridge.sol#L158) is not in mixedCase\n", "first_markdown_element": "src/Bridge.sol#L158", "id": "edf73519b79b3f4a8fccd32d73d63299b00e75891d090132676efb2548bd0e8a", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_signatures", "source_mapping": {"start": 6526, "length": 32, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [159], "starting_column": 9, "ending_column": 41}, "type_specific_fields": {"parent": {"type": "function", "name": "upgrade", "source_mapping": {"start": 6440, "length": 702, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Bridge", "source_mapping": {"start": 454, "length": 14483, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [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, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386], "starting_column": 1, "ending_column": 2}}, "signature": "upgrade(ICommon.ValidatorSetArgs,ICommon.Signature[],address,uint256)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter Bridge.upgrade(ICommon.ValidatorSetArgs,ICommon.Signature[],address,uint256)._signatures (src/Bridge.sol#159) is not in mixedCase\n", "markdown": "Parameter [Bridge.upgrade(ICommon.ValidatorSetArgs,ICommon.Signature[],address,uint256)._signatures](src/Bridge.sol#L159) is not in mixedCase\n", "first_markdown_element": "src/Bridge.sol#L159", "id": "9aabaf5a1e2375353e7d231079bb7b772844ba754b4ff982b18ad217acc88939", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_to", "source_mapping": {"start": 6568, "length": 11, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [160], "starting_column": 9, "ending_column": 20}, "type_specific_fields": {"parent": {"type": "function", "name": "upgrade", "source_mapping": {"start": 6440, "length": 702, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Bridge", "source_mapping": {"start": 454, "length": 14483, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [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, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386], "starting_column": 1, "ending_column": 2}}, "signature": "upgrade(ICommon.ValidatorSetArgs,ICommon.Signature[],address,uint256)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter Bridge.upgrade(ICommon.ValidatorSetArgs,ICommon.Signature[],address,uint256)._to (src/Bridge.sol#160) is not in mixedCase\n", "markdown": "Parameter [Bridge.upgrade(ICommon.ValidatorSetArgs,ICommon.Signature[],address,uint256)._to](src/Bridge.sol#L160) is not in mixedCase\n", "first_markdown_element": "src/Bridge.sol#L160", "id": "81342ec3e133a957a10a726f97b9c36df8bec5b5a7d37c86c11a2936ca9f62d0", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_nonce", "source_mapping": {"start": 6589, "length": 14, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [161], "starting_column": 9, "ending_column": 23}, "type_specific_fields": {"parent": {"type": "function", "name": "upgrade", "source_mapping": {"start": 6440, "length": 702, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Bridge", "source_mapping": {"start": 454, "length": 14483, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [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, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386], "starting_column": 1, "ending_column": 2}}, "signature": "upgrade(ICommon.ValidatorSetArgs,ICommon.Signature[],address,uint256)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter Bridge.upgrade(ICommon.ValidatorSetArgs,ICommon.Signature[],address,uint256)._nonce (src/Bridge.sol#161) is not in mixedCase\n", "markdown": "Parameter [Bridge.upgrade(ICommon.ValidatorSetArgs,ICommon.Signature[],address,uint256)._nonce](src/Bridge.sol#L161) is not in mixedCase\n", "first_markdown_element": "src/Bridge.sol#L161", "id": "30609e4421b76d725ce1d39d296d07f062b572a8a263cb7b3a1aa0f3a78d9542", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "thresholdVotingPower", "source_mapping": {"start": 537, "length": 76, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [18], "starting_column": 5, "ending_column": 81}, "type_specific_fields": {"parent": {"type": "contract", "name": "Bridge", "source_mapping": {"start": 454, "length": 14483, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [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, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386], "starting_column": 1, "ending_column": 2}}}, "additional_fields": {"target": "variable_constant", "convention": "UPPER_CASE_WITH_UNDERSCORES"}}], "description": "Constant Bridge.thresholdVotingPower (src/Bridge.sol#18) is not in UPPER_CASE_WITH_UNDERSCORES\n", "markdown": "Constant [Bridge.thresholdVotingPower](src/Bridge.sol#L18) is not in UPPER_CASE_WITH_UNDERSCORES\n", "first_markdown_element": "src/Bridge.sol#L18", "id": "08ab4af348ad3e32b08b29178a2319021be04cbdf10923a5cce818457ef113ec", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_name", "source_mapping": {"start": 709, "length": 21, "filename_relative": "src/Proxy.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Proxy.sol", "filename_short": "src/Proxy.sol", "is_dependency": false, "lines": [26], "starting_column": 30, "ending_column": 51}, "type_specific_fields": {"parent": {"type": "function", "name": "upgradeContract", "source_mapping": {"start": 684, "length": 539, "filename_relative": "src/Proxy.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Proxy.sol", "filename_short": "src/Proxy.sol", "is_dependency": false, "lines": [26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Proxy", "source_mapping": {"start": 98, "length": 2904, "filename_relative": "src/Proxy.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Proxy.sol", "filename_short": "src/Proxy.sol", "is_dependency": false, "lines": [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86], "starting_column": 1, "ending_column": 2}}, "signature": "upgradeContract(string,address)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter Proxy.upgradeContract(string,address)._name (src/Proxy.sol#26) is not in mixedCase\n", "markdown": "Parameter [Proxy.upgradeContract(string,address)._name](src/Proxy.sol#L26) is not in mixedCase\n", "first_markdown_element": "src/Proxy.sol#L26", "id": "c3ff1a1d0d4140c16440bbead50c976f7018679e17c36a1af8e9313b702b2ce8", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_address", "source_mapping": {"start": 732, "length": 16, "filename_relative": "src/Proxy.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Proxy.sol", "filename_short": "src/Proxy.sol", "is_dependency": false, "lines": [26], "starting_column": 53, "ending_column": 69}, "type_specific_fields": {"parent": {"type": "function", "name": "upgradeContract", "source_mapping": {"start": 684, "length": 539, "filename_relative": "src/Proxy.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Proxy.sol", "filename_short": "src/Proxy.sol", "is_dependency": false, "lines": [26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Proxy", "source_mapping": {"start": 98, "length": 2904, "filename_relative": "src/Proxy.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Proxy.sol", "filename_short": "src/Proxy.sol", "is_dependency": false, "lines": [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86], "starting_column": 1, "ending_column": 2}}, "signature": "upgradeContract(string,address)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter Proxy.upgradeContract(string,address)._address (src/Proxy.sol#26) is not in mixedCase\n", "markdown": "Parameter [Proxy.upgradeContract(string,address)._address](src/Proxy.sol#L26) is not in mixedCase\n", "first_markdown_element": "src/Proxy.sol#L26", "id": "55a8e30a999b795bf40246f62e97eafd456dbceb0e07339b994d32b689c9ec86", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_name", "source_mapping": {"start": 1250, "length": 21, "filename_relative": "src/Proxy.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Proxy.sol", "filename_short": "src/Proxy.sol", "is_dependency": false, "lines": [39], "starting_column": 26, "ending_column": 47}, "type_specific_fields": {"parent": {"type": "function", "name": "addContract", "source_mapping": {"start": 1229, "length": 409, "filename_relative": "src/Proxy.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Proxy.sol", "filename_short": "src/Proxy.sol", "is_dependency": false, "lines": [39, 40, 41, 42, 43, 44, 45, 46], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Proxy", "source_mapping": {"start": 98, "length": 2904, "filename_relative": "src/Proxy.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Proxy.sol", "filename_short": "src/Proxy.sol", "is_dependency": false, "lines": [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86], "starting_column": 1, "ending_column": 2}}, "signature": "addContract(string,address)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter Proxy.addContract(string,address)._name (src/Proxy.sol#39) is not in mixedCase\n", "markdown": "Parameter [Proxy.addContract(string,address)._name](src/Proxy.sol#L39) is not in mixedCase\n", "first_markdown_element": "src/Proxy.sol#L39", "id": "51c9c8de45bd41c275fd0f2d88869ba8e28f3f339ad067285dff078ff9fdcda5", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_address", "source_mapping": {"start": 1273, "length": 16, "filename_relative": "src/Proxy.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Proxy.sol", "filename_short": "src/Proxy.sol", "is_dependency": false, "lines": [39], "starting_column": 49, "ending_column": 65}, "type_specific_fields": {"parent": {"type": "function", "name": "addContract", "source_mapping": {"start": 1229, "length": 409, "filename_relative": "src/Proxy.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Proxy.sol", "filename_short": "src/Proxy.sol", "is_dependency": false, "lines": [39, 40, 41, 42, 43, 44, 45, 46], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Proxy", "source_mapping": {"start": 98, "length": 2904, "filename_relative": "src/Proxy.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Proxy.sol", "filename_short": "src/Proxy.sol", "is_dependency": false, "lines": [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86], "starting_column": 1, "ending_column": 2}}, "signature": "addContract(string,address)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter Proxy.addContract(string,address)._address (src/Proxy.sol#39) is not in mixedCase\n", "markdown": "Parameter [Proxy.addContract(string,address)._address](src/Proxy.sol#L39) is not in mixedCase\n", "first_markdown_element": "src/Proxy.sol#L39", "id": "c7146e5e3e9a59058620386a346bd6ba11100e419f4faec222dfc89be153fd96", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_name", "source_mapping": {"start": 1665, "length": 21, "filename_relative": "src/Proxy.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Proxy.sol", "filename_short": "src/Proxy.sol", "is_dependency": false, "lines": [48], "starting_column": 26, "ending_column": 47}, "type_specific_fields": {"parent": {"type": "function", "name": "getContract", "source_mapping": {"start": 1644, "length": 154, "filename_relative": "src/Proxy.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Proxy.sol", "filename_short": "src/Proxy.sol", "is_dependency": false, "lines": [48, 49, 50], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Proxy", "source_mapping": {"start": 98, "length": 2904, "filename_relative": "src/Proxy.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Proxy.sol", "filename_short": "src/Proxy.sol", "is_dependency": false, "lines": [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86], "starting_column": 1, "ending_column": 2}}, "signature": "getContract(string)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter Proxy.getContract(string)._name (src/Proxy.sol#48) is not in mixedCase\n", "markdown": "Parameter [Proxy.getContract(string)._name](src/Proxy.sol#L48) is not in mixedCase\n", "first_markdown_element": "src/Proxy.sol#L48", "id": "d6fbaadd56ae320b18183e2371480f71662cbf2c356f6259b2e83f8cd7a18d68", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "__getContract", "source_mapping": {"start": 2032, "length": 144, "filename_relative": "src/Proxy.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Proxy.sol", "filename_short": "src/Proxy.sol", "is_dependency": false, "lines": [57, 58, 59], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Proxy", "source_mapping": {"start": 98, "length": 2904, "filename_relative": "src/Proxy.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Proxy.sol", "filename_short": "src/Proxy.sol", "is_dependency": false, "lines": [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86], "starting_column": 1, "ending_column": 2}}, "signature": "__getContract(string)"}, "additional_fields": {"target": "function", "convention": "mixedCase"}}], "description": "Function Proxy.__getContract(string) (src/Proxy.sol#57-59) is not in mixedCase\n", "markdown": "Function [Proxy.__getContract(string)](src/Proxy.sol#L57-L59) is not in mixedCase\n", "first_markdown_element": "src/Proxy.sol#L57-L59", "id": "6b3294b1d6730dedca0bec37cfd8e2b601e72cf5ae739f541ad9ecc867bff64f", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_name", "source_mapping": {"start": 2055, "length": 19, "filename_relative": "src/Proxy.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Proxy.sol", "filename_short": "src/Proxy.sol", "is_dependency": false, "lines": [57], "starting_column": 28, "ending_column": 47}, "type_specific_fields": {"parent": {"type": "function", "name": "__getContract", "source_mapping": {"start": 2032, "length": 144, "filename_relative": "src/Proxy.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Proxy.sol", "filename_short": "src/Proxy.sol", "is_dependency": false, "lines": [57, 58, 59], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Proxy", "source_mapping": {"start": 98, "length": 2904, "filename_relative": "src/Proxy.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Proxy.sol", "filename_short": "src/Proxy.sol", "is_dependency": false, "lines": [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86], "starting_column": 1, "ending_column": 2}}, "signature": "__getContract(string)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter Proxy.__getContract(string)._name (src/Proxy.sol#57) is not in mixedCase\n", "markdown": "Parameter [Proxy.__getContract(string)._name](src/Proxy.sol#L57) is not in mixedCase\n", "first_markdown_element": "src/Proxy.sol#L57", "id": "e1e3d3f64c368abf923c9dae594c04d2b828b4fa072bf43d73aa94b31374198e", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_transfers", "source_mapping": {"start": 534, "length": 35, "filename_relative": "src/Vault.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Vault.sol", "filename_short": "src/Vault.sol", "is_dependency": false, "lines": [20], "starting_column": 35, "ending_column": 70}, "type_specific_fields": {"parent": {"type": "function", "name": "batchTransferToErc20", "source_mapping": {"start": 504, "length": 331, "filename_relative": "src/Vault.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Vault.sol", "filename_short": "src/Vault.sol", "is_dependency": false, "lines": [20, 21, 22, 23, 24, 25, 26], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Vault", "source_mapping": {"start": 324, "length": 686, "filename_relative": "src/Vault.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Vault.sol", "filename_short": "src/Vault.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], "starting_column": 1, "ending_column": 2}}, "signature": "batchTransferToErc20(ICommon.Erc20Transfer[])"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter Vault.batchTransferToErc20(ICommon.Erc20Transfer[])._transfers (src/Vault.sol#20) is not in mixedCase\n", "markdown": "Parameter [Vault.batchTransferToErc20(ICommon.Erc20Transfer[])._transfers](src/Vault.sol#L20) is not in mixedCase\n", "first_markdown_element": "src/Vault.sol#L20", "id": "eb2fcacca558d41e860576f16e7e8abfb9f58b9b5309d7c3b67c3ffe83c1f2e8", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "_onlyBridge", "source_mapping": {"start": 841, "length": 167, "filename_relative": "src/Vault.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Vault.sol", "filename_short": "src/Vault.sol", "is_dependency": false, "lines": [28, 29, 30, 31, 32], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Vault", "source_mapping": {"start": 324, "length": 686, "filename_relative": "src/Vault.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Vault.sol", "filename_short": "src/Vault.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], "starting_column": 1, "ending_column": 2}}, "signature": "_onlyBridge()"}, "additional_fields": {"target": "modifier", "convention": "mixedCase"}}], "description": "Modifier Vault._onlyBridge() (src/Vault.sol#28-32) is not in mixedCase\n", "markdown": "Modifier [Vault._onlyBridge()](src/Vault.sol#L28-L32) is not in mixedCase\n", "first_markdown_element": "src/Vault.sol#L28-L32", "id": "1faab9d4670055f8b081d9ab274578a154f79fb0f679ca16c514c750b5886ae7", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [], "description": "Loop condition `i < bridgeValidatorSet.length` (test/Bridge.sol#124) should use cached array length instead of referencing `length` member of the storage array.\n ", "markdown": "Loop condition `i < bridgeValidatorSet.length` (test/Bridge.sol#124) should use cached array length instead of referencing `length` member of the storage array.\n ", "first_markdown_element": "", "id": "5d1c3183e5279b5bbf9605b9bad250f066a66d1595601e861ee21d8b238900f1", "check": "cache-array-length", "impact": "Optimization", "confidence": "High"}, {"elements": [], "description": "Loop condition `i < bridgeValidatorSet.length` (test/Bridge.sol#166) should use cached array length instead of referencing `length` member of the storage array.\n ", "markdown": "Loop condition `i < bridgeValidatorSet.length` (test/Bridge.sol#166) should use cached array length instead of referencing `length` member of the storage array.\n ", "first_markdown_element": "", "id": "7f95e5a0dca5dac8da7704593ed877e9a80bee761cd43f5bcfd3ac7b81b7252f", "check": "cache-array-length", "impact": "Optimization", "confidence": "High"}, {"elements": [], "description": "Loop condition `i < governanceValidatorSet.length` (test/Bridge.sol#331) should use cached array length instead of referencing `length` member of the storage array.\n ", "markdown": "Loop condition `i < governanceValidatorSet.length` (test/Bridge.sol#331) should use cached array length instead of referencing `length` member of the storage array.\n ", "first_markdown_element": "", "id": "62c60c7d762e47151238c657941d926eee011b89d741c35adb451e058b338b09", "check": "cache-array-length", "impact": "Optimization", "confidence": "High"}, {"elements": [], "description": "Loop condition `i < bridgeValidatorSet.length` (test/Bridge.sol#202) should use cached array length instead of referencing `length` member of the storage array.\n ", "markdown": "Loop condition `i < bridgeValidatorSet.length` (test/Bridge.sol#202) should use cached array length instead of referencing `length` member of the storage array.\n ", "first_markdown_element": "", "id": "7cf33dfb6f0905c0839cde3c71b9aaa0e269b779d4c6267fe7cf6df5f905a30a", "check": "cache-array-length", "impact": "Optimization", "confidence": "High"}, {"elements": [], "description": "Loop condition `i < governanceValidatorSet.length` (test/Bridge.sol#232) should use cached array length instead of referencing `length` member of the storage array.\n ", "markdown": "Loop condition `i < governanceValidatorSet.length` (test/Bridge.sol#232) should use cached array length instead of referencing `length` member of the storage array.\n ", "first_markdown_element": "", "id": "b0eaa8f388c323e306edd3fed636c0b2d3827bd822301c93ffb90b7539086c3e", "check": "cache-array-length", "impact": "Optimization", "confidence": "High"}, {"elements": [], "description": "Loop condition `i < governanceValidatorSet.length` (test/Bridge.sol#296) should use cached array length instead of referencing `length` member of the storage array.\n ", "markdown": "Loop condition `i < governanceValidatorSet.length` (test/Bridge.sol#296) should use cached array length instead of referencing `length` member of the storage array.\n ", "first_markdown_element": "", "id": "5835a7e6a1c191deac444f0fd561f59d0cfc3b698edb4e229379da2a9cc271ef", "check": "cache-array-length", "impact": "Optimization", "confidence": "High"}, {"elements": [], "description": "Loop condition `i < governanceValidatorSet.length` (test/Bridge.sol#387) should use cached array length instead of referencing `length` member of the storage array.\n ", "markdown": "Loop condition `i < governanceValidatorSet.length` (test/Bridge.sol#387) should use cached array length instead of referencing `length` member of the storage array.\n ", "first_markdown_element": "", "id": "f7fa613a8b0a9ea7ee428d8cfbccac0dcaae62619ba83c5634b89cf7a0ff4aba", "check": "cache-array-length", "impact": "Optimization", "confidence": "High"}, {"elements": [{"type": "variable", "name": "proxy", "source_mapping": {"start": 1071, "length": 20, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [35], "starting_column": 5, "ending_column": 25}, "type_specific_fields": {"parent": {"type": "contract", "name": "Bridge", "source_mapping": {"start": 454, "length": 14483, "filename_relative": "src/Bridge.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Bridge.sol", "filename_short": "src/Bridge.sol", "is_dependency": false, "lines": [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, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386], "starting_column": 1, "ending_column": 2}}}}], "description": "Bridge.proxy (src/Bridge.sol#35) should be immutable \n", "markdown": "[Bridge.proxy](src/Bridge.sol#L35) should be immutable \n", "first_markdown_element": "src/Bridge.sol#L35", "id": "870a34b666c3c41552fbe29ffd4890144f5454ac2446a7067123e001306b5ae9", "check": "immutable-states", "impact": "Optimization", "confidence": "High"}, {"elements": [{"type": "variable", "name": "proxy", "source_mapping": {"start": 405, "length": 20, "filename_relative": "src/Vault.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Vault.sol", "filename_short": "src/Vault.sol", "is_dependency": false, "lines": [14], "starting_column": 5, "ending_column": 25}, "type_specific_fields": {"parent": {"type": "contract", "name": "Vault", "source_mapping": {"start": 324, "length": 686, "filename_relative": "src/Vault.sol", "filename_absolute": "/Users/fraccaman/Heliax/ethereum-bridge-2/src/Vault.sol", "filename_short": "src/Vault.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], "starting_column": 1, "ending_column": 2}}}}], "description": "Vault.proxy (src/Vault.sol#14) should be immutable \n", "markdown": "[Vault.proxy](src/Vault.sol#L14) should be immutable \n", "first_markdown_element": "src/Vault.sol#L14", "id": "c9e6d4886492db5703081229c640e5b4f907a4d8ed85e96826b785ec1e9fe2a0", "check": "immutable-states", "impact": "Optimization", "confidence": "High"}]