[
  {
    "id": "0b6d0d6699a3fa3c78250e527327e43538895feecaa6cfd8a1793dfcc1d20c72",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "L1ChugSplashProxy.setOwner(address) (src/legacy/L1ChugSplashProxy.sol#138-140) calls L1ChugSplashProxy.proxyCallIfNotOwner() (src/legacy/L1ChugSplashProxy.sol#64-71) which halt the execution return(uint256,uint256)(0x0,returndatasize()()) (src/legacy/L1ChugSplashProxy.sol#196)\n",
    "type": "function",
    "name": "setOwner",
    "start": 6890,
    "length": 97,
    "filename_relative": "src/legacy/L1ChugSplashProxy.sol"
  },
  {
    "id": "0b6d0d6699a3fa3c78250e527327e43538895feecaa6cfd8a1793dfcc1d20c72",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "L1ChugSplashProxy.setOwner(address) (src/legacy/L1ChugSplashProxy.sol#138-140) calls L1ChugSplashProxy.proxyCallIfNotOwner() (src/legacy/L1ChugSplashProxy.sol#64-71) which halt the execution return(uint256,uint256)(0x0,returndatasize()()) (src/legacy/L1ChugSplashProxy.sol#196)\n",
    "type": "function",
    "name": "proxyCallIfNotOwner",
    "start": 3867,
    "length": 237,
    "filename_relative": "src/legacy/L1ChugSplashProxy.sol"
  },
  {
    "id": "0b6d0d6699a3fa3c78250e527327e43538895feecaa6cfd8a1793dfcc1d20c72",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "L1ChugSplashProxy.setOwner(address) (src/legacy/L1ChugSplashProxy.sol#138-140) calls L1ChugSplashProxy.proxyCallIfNotOwner() (src/legacy/L1ChugSplashProxy.sol#64-71) which halt the execution return(uint256,uint256)(0x0,returndatasize()()) (src/legacy/L1ChugSplashProxy.sol#196)\n",
    "type": "node",
    "name": "return(uint256,uint256)(0x0,returndatasize()())",
    "start": 9403,
    "length": 29,
    "filename_relative": "src/legacy/L1ChugSplashProxy.sol"
  },
  {
    "id": "0d4915766a9a2117c655d6bc36e42594e95bbba8293384ec5b2c4904ff7a131f",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "DelayedVetoable.target() (src/L1/DelayedVetoable.sol#108-110) calls DelayedVetoable.readOrHandle() (src/L1/DelayedVetoable.sol#67-74) which halt the execution return(uint256,uint256)(returndata + 0x20,mload(uint256)(returndata)) (src/L1/DelayedVetoable.sol#190)\n",
    "type": "function",
    "name": "target",
    "start": 4421,
    "length": 99,
    "filename_relative": "src/L1/DelayedVetoable.sol"
  },
  {
    "id": "0d4915766a9a2117c655d6bc36e42594e95bbba8293384ec5b2c4904ff7a131f",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "DelayedVetoable.target() (src/L1/DelayedVetoable.sol#108-110) calls DelayedVetoable.readOrHandle() (src/L1/DelayedVetoable.sol#67-74) which halt the execution return(uint256,uint256)(returndata + 0x20,mload(uint256)(returndata)) (src/L1/DelayedVetoable.sol#190)\n",
    "type": "function",
    "name": "readOrHandle",
    "start": 2953,
    "length": 200,
    "filename_relative": "src/L1/DelayedVetoable.sol"
  },
  {
    "id": "0d4915766a9a2117c655d6bc36e42594e95bbba8293384ec5b2c4904ff7a131f",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "DelayedVetoable.target() (src/L1/DelayedVetoable.sol#108-110) calls DelayedVetoable.readOrHandle() (src/L1/DelayedVetoable.sol#67-74) which halt the execution return(uint256,uint256)(returndata + 0x20,mload(uint256)(returndata)) (src/L1/DelayedVetoable.sol#190)\n",
    "type": "node",
    "name": "return(uint256,uint256)(returndata + 0x20,mload(uint256)(returndata))",
    "start": 7723,
    "length": 48,
    "filename_relative": "src/L1/DelayedVetoable.sol"
  },
  {
    "id": "11c5e51d3a0080a2b8f208ae6ec1a4c5617c6df83441ac96c67f322294f73f2b",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "L1ChugSplashProxy.getImplementation() (src/legacy/L1ChugSplashProxy.sol#152-154) calls L1ChugSplashProxy.proxyCallIfNotOwner() (src/legacy/L1ChugSplashProxy.sol#64-71) which halt the execution return(uint256,uint256)(0x0,returndatasize()()) (src/legacy/L1ChugSplashProxy.sol#196)\n",
    "type": "function",
    "name": "getImplementation",
    "start": 7519,
    "length": 120,
    "filename_relative": "src/legacy/L1ChugSplashProxy.sol"
  },
  {
    "id": "11c5e51d3a0080a2b8f208ae6ec1a4c5617c6df83441ac96c67f322294f73f2b",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "L1ChugSplashProxy.getImplementation() (src/legacy/L1ChugSplashProxy.sol#152-154) calls L1ChugSplashProxy.proxyCallIfNotOwner() (src/legacy/L1ChugSplashProxy.sol#64-71) which halt the execution return(uint256,uint256)(0x0,returndatasize()()) (src/legacy/L1ChugSplashProxy.sol#196)\n",
    "type": "function",
    "name": "proxyCallIfNotOwner",
    "start": 3867,
    "length": 237,
    "filename_relative": "src/legacy/L1ChugSplashProxy.sol"
  },
  {
    "id": "11c5e51d3a0080a2b8f208ae6ec1a4c5617c6df83441ac96c67f322294f73f2b",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "L1ChugSplashProxy.getImplementation() (src/legacy/L1ChugSplashProxy.sol#152-154) calls L1ChugSplashProxy.proxyCallIfNotOwner() (src/legacy/L1ChugSplashProxy.sol#64-71) which halt the execution return(uint256,uint256)(0x0,returndatasize()()) (src/legacy/L1ChugSplashProxy.sol#196)\n",
    "type": "node",
    "name": "return(uint256,uint256)(0x0,returndatasize()())",
    "start": 9403,
    "length": 29,
    "filename_relative": "src/legacy/L1ChugSplashProxy.sol"
  },
  {
    "id": "1e96b3f3be5c5b827284291533d15f8b70c3f8bc774e863359baa95195e8a79c",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "Proxy.implementation() (src/universal/Proxy.sol#97-99) calls Proxy.proxyCallIfNotAdmin() (src/universal/Proxy.sol#26-33) which halt the execution return(uint256,uint256)(0x0,returndatasize()()) (src/universal/Proxy.sol#143)\n",
    "type": "function",
    "name": "implementation",
    "start": 3967,
    "length": 123,
    "filename_relative": "src/universal/Proxy.sol"
  },
  {
    "id": "1e96b3f3be5c5b827284291533d15f8b70c3f8bc774e863359baa95195e8a79c",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "Proxy.implementation() (src/universal/Proxy.sol#97-99) calls Proxy.proxyCallIfNotAdmin() (src/universal/Proxy.sol#26-33) which halt the execution return(uint256,uint256)(0x0,returndatasize()()) (src/universal/Proxy.sol#143)\n",
    "type": "function",
    "name": "proxyCallIfNotAdmin",
    "start": 1295,
    "length": 237,
    "filename_relative": "src/universal/Proxy.sol"
  },
  {
    "id": "1e96b3f3be5c5b827284291533d15f8b70c3f8bc774e863359baa95195e8a79c",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "Proxy.implementation() (src/universal/Proxy.sol#97-99) calls Proxy.proxyCallIfNotAdmin() (src/universal/Proxy.sol#26-33) which halt the execution return(uint256,uint256)(0x0,returndatasize()()) (src/universal/Proxy.sol#143)\n",
    "type": "node",
    "name": "return(uint256,uint256)(0x0,returndatasize()())",
    "start": 5922,
    "length": 29,
    "filename_relative": "src/universal/Proxy.sol"
  },
  {
    "id": "2792614492719714cdcff9f7f8e1c602931befa4b0b2d9e0845a2fbf3964f949",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "Proxy.upgradeToAndCall(address,bytes) (src/universal/Proxy.sol#67-81) calls Proxy.proxyCallIfNotAdmin() (src/universal/Proxy.sol#26-33) which halt the execution return(uint256,uint256)(0x0,returndatasize()()) (src/universal/Proxy.sol#143)\n",
    "type": "function",
    "name": "upgradeToAndCall",
    "start": 2959,
    "length": 458,
    "filename_relative": "src/universal/Proxy.sol"
  },
  {
    "id": "2792614492719714cdcff9f7f8e1c602931befa4b0b2d9e0845a2fbf3964f949",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "Proxy.upgradeToAndCall(address,bytes) (src/universal/Proxy.sol#67-81) calls Proxy.proxyCallIfNotAdmin() (src/universal/Proxy.sol#26-33) which halt the execution return(uint256,uint256)(0x0,returndatasize()()) (src/universal/Proxy.sol#143)\n",
    "type": "function",
    "name": "proxyCallIfNotAdmin",
    "start": 1295,
    "length": 237,
    "filename_relative": "src/universal/Proxy.sol"
  },
  {
    "id": "2792614492719714cdcff9f7f8e1c602931befa4b0b2d9e0845a2fbf3964f949",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "Proxy.upgradeToAndCall(address,bytes) (src/universal/Proxy.sol#67-81) calls Proxy.proxyCallIfNotAdmin() (src/universal/Proxy.sol#26-33) which halt the execution return(uint256,uint256)(0x0,returndatasize()()) (src/universal/Proxy.sol#143)\n",
    "type": "node",
    "name": "return(uint256,uint256)(0x0,returndatasize()())",
    "start": 5922,
    "length": 29,
    "filename_relative": "src/universal/Proxy.sol"
  },
  {
    "id": "35ba264224a7ea48dc7cd248e60c07e4aae32401690ae90b217f017e3a1b8112",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "DelayedVetoable.vetoer() (src/L1/DelayedVetoable.sol#102-104) calls DelayedVetoable.readOrHandle() (src/L1/DelayedVetoable.sol#67-74) which halt the execution return(uint256,uint256)(returndata + 0x20,mload(uint256)(returndata)) (src/L1/DelayedVetoable.sol#190)\n",
    "type": "function",
    "name": "vetoer",
    "start": 4223,
    "length": 107,
    "filename_relative": "src/L1/DelayedVetoable.sol"
  },
  {
    "id": "35ba264224a7ea48dc7cd248e60c07e4aae32401690ae90b217f017e3a1b8112",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "DelayedVetoable.vetoer() (src/L1/DelayedVetoable.sol#102-104) calls DelayedVetoable.readOrHandle() (src/L1/DelayedVetoable.sol#67-74) which halt the execution return(uint256,uint256)(returndata + 0x20,mload(uint256)(returndata)) (src/L1/DelayedVetoable.sol#190)\n",
    "type": "function",
    "name": "readOrHandle",
    "start": 2953,
    "length": 200,
    "filename_relative": "src/L1/DelayedVetoable.sol"
  },
  {
    "id": "35ba264224a7ea48dc7cd248e60c07e4aae32401690ae90b217f017e3a1b8112",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "DelayedVetoable.vetoer() (src/L1/DelayedVetoable.sol#102-104) calls DelayedVetoable.readOrHandle() (src/L1/DelayedVetoable.sol#67-74) which halt the execution return(uint256,uint256)(returndata + 0x20,mload(uint256)(returndata)) (src/L1/DelayedVetoable.sol#190)\n",
    "type": "node",
    "name": "return(uint256,uint256)(returndata + 0x20,mload(uint256)(returndata))",
    "start": 7723,
    "length": 48,
    "filename_relative": "src/L1/DelayedVetoable.sol"
  },
  {
    "id": "38dac452acbdd7762ba9aa67e268c249835dad01e219ff2f50d93e4533aa7c52",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "DelayedVetoable.readOrHandle() (src/L1/DelayedVetoable.sol#67-74) calls DelayedVetoable._handleCall() (src/L1/DelayedVetoable.sol#133-181) which halt the execution return(uint256,uint256)(returndata + 0x20,mload(uint256)(returndata)) (src/L1/DelayedVetoable.sol#190)\n",
    "type": "function",
    "name": "readOrHandle",
    "start": 2953,
    "length": 200,
    "filename_relative": "src/L1/DelayedVetoable.sol"
  },
  {
    "id": "38dac452acbdd7762ba9aa67e268c249835dad01e219ff2f50d93e4533aa7c52",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "DelayedVetoable.readOrHandle() (src/L1/DelayedVetoable.sol#67-74) calls DelayedVetoable._handleCall() (src/L1/DelayedVetoable.sol#133-181) which halt the execution return(uint256,uint256)(returndata + 0x20,mload(uint256)(returndata)) (src/L1/DelayedVetoable.sol#190)\n",
    "type": "function",
    "name": "_handleCall",
    "start": 5365,
    "length": 2009,
    "filename_relative": "src/L1/DelayedVetoable.sol"
  },
  {
    "id": "38dac452acbdd7762ba9aa67e268c249835dad01e219ff2f50d93e4533aa7c52",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "DelayedVetoable.readOrHandle() (src/L1/DelayedVetoable.sol#67-74) calls DelayedVetoable._handleCall() (src/L1/DelayedVetoable.sol#133-181) which halt the execution return(uint256,uint256)(returndata + 0x20,mload(uint256)(returndata)) (src/L1/DelayedVetoable.sol#190)\n",
    "type": "node",
    "name": "return(uint256,uint256)(returndata + 0x20,mload(uint256)(returndata))",
    "start": 7723,
    "length": 48,
    "filename_relative": "src/L1/DelayedVetoable.sol"
  },
  {
    "id": "39745c2ba61544fe128a7627287a023e043a087ee32100d6e0bfe5b404209670",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "DelayedVetoable.initiator() (src/L1/DelayedVetoable.sol#96-98) calls DelayedVetoable.readOrHandle() (src/L1/DelayedVetoable.sol#67-74) which halt the execution return(uint256,uint256)(returndata + 0x20,mload(uint256)(returndata)) (src/L1/DelayedVetoable.sol#190)\n",
    "type": "function",
    "name": "initiator",
    "start": 4013,
    "length": 119,
    "filename_relative": "src/L1/DelayedVetoable.sol"
  },
  {
    "id": "39745c2ba61544fe128a7627287a023e043a087ee32100d6e0bfe5b404209670",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "DelayedVetoable.initiator() (src/L1/DelayedVetoable.sol#96-98) calls DelayedVetoable.readOrHandle() (src/L1/DelayedVetoable.sol#67-74) which halt the execution return(uint256,uint256)(returndata + 0x20,mload(uint256)(returndata)) (src/L1/DelayedVetoable.sol#190)\n",
    "type": "function",
    "name": "readOrHandle",
    "start": 2953,
    "length": 200,
    "filename_relative": "src/L1/DelayedVetoable.sol"
  },
  {
    "id": "39745c2ba61544fe128a7627287a023e043a087ee32100d6e0bfe5b404209670",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "DelayedVetoable.initiator() (src/L1/DelayedVetoable.sol#96-98) calls DelayedVetoable.readOrHandle() (src/L1/DelayedVetoable.sol#67-74) which halt the execution return(uint256,uint256)(returndata + 0x20,mload(uint256)(returndata)) (src/L1/DelayedVetoable.sol#190)\n",
    "type": "node",
    "name": "return(uint256,uint256)(returndata + 0x20,mload(uint256)(returndata))",
    "start": 7723,
    "length": 48,
    "filename_relative": "src/L1/DelayedVetoable.sol"
  },
  {
    "id": "3f56bbd28cbf0b716ac3b0a61479a74ece176d3e2f2a53dd16994daa375a5468",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "DelayedVetoable._handleCall() (src/L1/DelayedVetoable.sol#133-181) calls DelayedVetoable._forwardAndHalt(bytes32) (src/L1/DelayedVetoable.sol#184-197) which halt the execution return(uint256,uint256)(returndata + 0x20,mload(uint256)(returndata)) (src/L1/DelayedVetoable.sol#190)\n",
    "type": "function",
    "name": "_handleCall",
    "start": 5365,
    "length": 2009,
    "filename_relative": "src/L1/DelayedVetoable.sol"
  },
  {
    "id": "3f56bbd28cbf0b716ac3b0a61479a74ece176d3e2f2a53dd16994daa375a5468",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "DelayedVetoable._handleCall() (src/L1/DelayedVetoable.sol#133-181) calls DelayedVetoable._forwardAndHalt(bytes32) (src/L1/DelayedVetoable.sol#184-197) which halt the execution return(uint256,uint256)(returndata + 0x20,mload(uint256)(returndata)) (src/L1/DelayedVetoable.sol#190)\n",
    "type": "function",
    "name": "_forwardAndHalt",
    "start": 7454,
    "length": 466,
    "filename_relative": "src/L1/DelayedVetoable.sol"
  },
  {
    "id": "3f56bbd28cbf0b716ac3b0a61479a74ece176d3e2f2a53dd16994daa375a5468",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "DelayedVetoable._handleCall() (src/L1/DelayedVetoable.sol#133-181) calls DelayedVetoable._forwardAndHalt(bytes32) (src/L1/DelayedVetoable.sol#184-197) which halt the execution return(uint256,uint256)(returndata + 0x20,mload(uint256)(returndata)) (src/L1/DelayedVetoable.sol#190)\n",
    "type": "node",
    "name": "return(uint256,uint256)(returndata + 0x20,mload(uint256)(returndata))",
    "start": 7723,
    "length": 48,
    "filename_relative": "src/L1/DelayedVetoable.sol"
  },
  {
    "id": "40da9d5df6ace4d9b107bfd175846739fa74c9a29d3b6d94d1b8ce9dfa13aa05",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "DelayedVetoable.queuedAt(bytes32) (src/L1/DelayedVetoable.sol#121-123) calls DelayedVetoable.readOrHandle() (src/L1/DelayedVetoable.sol#67-74) which halt the execution return(uint256,uint256)(returndata + 0x20,mload(uint256)(returndata)) (src/L1/DelayedVetoable.sol#190)\n",
    "type": "function",
    "name": "queuedAt",
    "start": 4865,
    "length": 134,
    "filename_relative": "src/L1/DelayedVetoable.sol"
  },
  {
    "id": "40da9d5df6ace4d9b107bfd175846739fa74c9a29d3b6d94d1b8ce9dfa13aa05",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "DelayedVetoable.queuedAt(bytes32) (src/L1/DelayedVetoable.sol#121-123) calls DelayedVetoable.readOrHandle() (src/L1/DelayedVetoable.sol#67-74) which halt the execution return(uint256,uint256)(returndata + 0x20,mload(uint256)(returndata)) (src/L1/DelayedVetoable.sol#190)\n",
    "type": "function",
    "name": "readOrHandle",
    "start": 2953,
    "length": 200,
    "filename_relative": "src/L1/DelayedVetoable.sol"
  },
  {
    "id": "40da9d5df6ace4d9b107bfd175846739fa74c9a29d3b6d94d1b8ce9dfa13aa05",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "DelayedVetoable.queuedAt(bytes32) (src/L1/DelayedVetoable.sol#121-123) calls DelayedVetoable.readOrHandle() (src/L1/DelayedVetoable.sol#67-74) which halt the execution return(uint256,uint256)(returndata + 0x20,mload(uint256)(returndata)) (src/L1/DelayedVetoable.sol#190)\n",
    "type": "node",
    "name": "return(uint256,uint256)(returndata + 0x20,mload(uint256)(returndata))",
    "start": 7723,
    "length": 48,
    "filename_relative": "src/L1/DelayedVetoable.sol"
  },
  {
    "id": "4ea64b8e0080de740c9c25e7841217213a680d8680654c8c9f744be145a1431a",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "L1ChugSplashProxy.setCode(bytes) (src/legacy/L1ChugSplashProxy.sol#96-124) calls L1ChugSplashProxy.proxyCallIfNotOwner() (src/legacy/L1ChugSplashProxy.sol#64-71) which halt the execution return(uint256,uint256)(0x0,returndatasize()()) (src/legacy/L1ChugSplashProxy.sol#196)\n",
    "type": "function",
    "name": "setCode",
    "start": 5022,
    "length": 1285,
    "filename_relative": "src/legacy/L1ChugSplashProxy.sol"
  },
  {
    "id": "4ea64b8e0080de740c9c25e7841217213a680d8680654c8c9f744be145a1431a",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "L1ChugSplashProxy.setCode(bytes) (src/legacy/L1ChugSplashProxy.sol#96-124) calls L1ChugSplashProxy.proxyCallIfNotOwner() (src/legacy/L1ChugSplashProxy.sol#64-71) which halt the execution return(uint256,uint256)(0x0,returndatasize()()) (src/legacy/L1ChugSplashProxy.sol#196)\n",
    "type": "function",
    "name": "proxyCallIfNotOwner",
    "start": 3867,
    "length": 237,
    "filename_relative": "src/legacy/L1ChugSplashProxy.sol"
  },
  {
    "id": "4ea64b8e0080de740c9c25e7841217213a680d8680654c8c9f744be145a1431a",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "L1ChugSplashProxy.setCode(bytes) (src/legacy/L1ChugSplashProxy.sol#96-124) calls L1ChugSplashProxy.proxyCallIfNotOwner() (src/legacy/L1ChugSplashProxy.sol#64-71) which halt the execution return(uint256,uint256)(0x0,returndatasize()()) (src/legacy/L1ChugSplashProxy.sol#196)\n",
    "type": "node",
    "name": "return(uint256,uint256)(0x0,returndatasize()())",
    "start": 9403,
    "length": 29,
    "filename_relative": "src/legacy/L1ChugSplashProxy.sol"
  },
  {
    "id": "5dbecee956931b503b0ed4fbb7be62ba5f9f64bab10ac87b3c5ba4dab3694bec",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "Proxy.upgradeTo(address) (src/universal/Proxy.sol#59-61) calls Proxy.proxyCallIfNotAdmin() (src/universal/Proxy.sol#26-33) which halt the execution return(uint256,uint256)(0x0,returndatasize()()) (src/universal/Proxy.sol#143)\n",
    "type": "function",
    "name": "upgradeTo",
    "start": 2498,
    "length": 131,
    "filename_relative": "src/universal/Proxy.sol"
  },
  {
    "id": "5dbecee956931b503b0ed4fbb7be62ba5f9f64bab10ac87b3c5ba4dab3694bec",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "Proxy.upgradeTo(address) (src/universal/Proxy.sol#59-61) calls Proxy.proxyCallIfNotAdmin() (src/universal/Proxy.sol#26-33) which halt the execution return(uint256,uint256)(0x0,returndatasize()()) (src/universal/Proxy.sol#143)\n",
    "type": "function",
    "name": "proxyCallIfNotAdmin",
    "start": 1295,
    "length": 237,
    "filename_relative": "src/universal/Proxy.sol"
  },
  {
    "id": "5dbecee956931b503b0ed4fbb7be62ba5f9f64bab10ac87b3c5ba4dab3694bec",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "Proxy.upgradeTo(address) (src/universal/Proxy.sol#59-61) calls Proxy.proxyCallIfNotAdmin() (src/universal/Proxy.sol#26-33) which halt the execution return(uint256,uint256)(0x0,returndatasize()()) (src/universal/Proxy.sol#143)\n",
    "type": "node",
    "name": "return(uint256,uint256)(0x0,returndatasize()())",
    "start": 5922,
    "length": 29,
    "filename_relative": "src/universal/Proxy.sol"
  },
  {
    "id": "5f00d9ac316494d702da33c92ba3267b0b2a5ab498b5c720e942923a75fd0f50",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "Proxy.changeAdmin(address) (src/universal/Proxy.sol#85-87) calls Proxy.proxyCallIfNotAdmin() (src/universal/Proxy.sol#26-33) which halt the execution return(uint256,uint256)(0x0,returndatasize()()) (src/universal/Proxy.sol#143)\n",
    "type": "function",
    "name": "changeAdmin",
    "start": 3563,
    "length": 109,
    "filename_relative": "src/universal/Proxy.sol"
  },
  {
    "id": "5f00d9ac316494d702da33c92ba3267b0b2a5ab498b5c720e942923a75fd0f50",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "Proxy.changeAdmin(address) (src/universal/Proxy.sol#85-87) calls Proxy.proxyCallIfNotAdmin() (src/universal/Proxy.sol#26-33) which halt the execution return(uint256,uint256)(0x0,returndatasize()()) (src/universal/Proxy.sol#143)\n",
    "type": "function",
    "name": "proxyCallIfNotAdmin",
    "start": 1295,
    "length": 237,
    "filename_relative": "src/universal/Proxy.sol"
  },
  {
    "id": "5f00d9ac316494d702da33c92ba3267b0b2a5ab498b5c720e942923a75fd0f50",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "Proxy.changeAdmin(address) (src/universal/Proxy.sol#85-87) calls Proxy.proxyCallIfNotAdmin() (src/universal/Proxy.sol#26-33) which halt the execution return(uint256,uint256)(0x0,returndatasize()()) (src/universal/Proxy.sol#143)\n",
    "type": "node",
    "name": "return(uint256,uint256)(0x0,returndatasize()())",
    "start": 5922,
    "length": 29,
    "filename_relative": "src/universal/Proxy.sol"
  },
  {
    "id": "61c6823d9d96abad705c3e29c3768a5d2ade61e6f226c9241e6f3278063ab469",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "Proxy.admin() (src/universal/Proxy.sol#91-93) calls Proxy.proxyCallIfNotAdmin() (src/universal/Proxy.sol#26-33) which halt the execution return(uint256,uint256)(0x0,returndatasize()()) (src/universal/Proxy.sol#143)\n",
    "type": "function",
    "name": "admin",
    "start": 3763,
    "length": 105,
    "filename_relative": "src/universal/Proxy.sol"
  },
  {
    "id": "61c6823d9d96abad705c3e29c3768a5d2ade61e6f226c9241e6f3278063ab469",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "Proxy.admin() (src/universal/Proxy.sol#91-93) calls Proxy.proxyCallIfNotAdmin() (src/universal/Proxy.sol#26-33) which halt the execution return(uint256,uint256)(0x0,returndatasize()()) (src/universal/Proxy.sol#143)\n",
    "type": "function",
    "name": "proxyCallIfNotAdmin",
    "start": 1295,
    "length": 237,
    "filename_relative": "src/universal/Proxy.sol"
  },
  {
    "id": "61c6823d9d96abad705c3e29c3768a5d2ade61e6f226c9241e6f3278063ab469",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "Proxy.admin() (src/universal/Proxy.sol#91-93) calls Proxy.proxyCallIfNotAdmin() (src/universal/Proxy.sol#26-33) which halt the execution return(uint256,uint256)(0x0,returndatasize()()) (src/universal/Proxy.sol#143)\n",
    "type": "node",
    "name": "return(uint256,uint256)(0x0,returndatasize()())",
    "start": 5922,
    "length": 29,
    "filename_relative": "src/universal/Proxy.sol"
  },
  {
    "id": "648de83c485a902ab3df50445e187c6390720ae77705d14edbcc112e4fd8fe1a",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "L1ChugSplashProxy.proxyCallIfNotOwner() (src/legacy/L1ChugSplashProxy.sol#64-71) calls L1ChugSplashProxy._doProxyCall() (src/legacy/L1ChugSplashProxy.sol#175-198) which halt the execution return(uint256,uint256)(0x0,returndatasize()()) (src/legacy/L1ChugSplashProxy.sol#196)\n",
    "type": "function",
    "name": "proxyCallIfNotOwner",
    "start": 3867,
    "length": 237,
    "filename_relative": "src/legacy/L1ChugSplashProxy.sol"
  },
  {
    "id": "648de83c485a902ab3df50445e187c6390720ae77705d14edbcc112e4fd8fe1a",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "L1ChugSplashProxy.proxyCallIfNotOwner() (src/legacy/L1ChugSplashProxy.sol#64-71) calls L1ChugSplashProxy._doProxyCall() (src/legacy/L1ChugSplashProxy.sol#175-198) which halt the execution return(uint256,uint256)(0x0,returndatasize()()) (src/legacy/L1ChugSplashProxy.sol#196)\n",
    "type": "function",
    "name": "_doProxyCall",
    "start": 8349,
    "length": 1099,
    "filename_relative": "src/legacy/L1ChugSplashProxy.sol"
  },
  {
    "id": "648de83c485a902ab3df50445e187c6390720ae77705d14edbcc112e4fd8fe1a",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "L1ChugSplashProxy.proxyCallIfNotOwner() (src/legacy/L1ChugSplashProxy.sol#64-71) calls L1ChugSplashProxy._doProxyCall() (src/legacy/L1ChugSplashProxy.sol#175-198) which halt the execution return(uint256,uint256)(0x0,returndatasize()()) (src/legacy/L1ChugSplashProxy.sol#196)\n",
    "type": "node",
    "name": "return(uint256,uint256)(0x0,returndatasize()())",
    "start": 9403,
    "length": 29,
    "filename_relative": "src/legacy/L1ChugSplashProxy.sol"
  },
  {
    "id": "6cf6408cd8c7aedc182552abc25970ede8e033409292304b75b62006b0ad9491",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "DelayedVetoable.delay() (src/L1/DelayedVetoable.sol#114-116) calls DelayedVetoable.readOrHandle() (src/L1/DelayedVetoable.sol#67-74) which halt the execution return(uint256,uint256)(returndata + 0x20,mload(uint256)(returndata)) (src/L1/DelayedVetoable.sol#190)\n",
    "type": "function",
    "name": "delay",
    "start": 4595,
    "length": 96,
    "filename_relative": "src/L1/DelayedVetoable.sol"
  },
  {
    "id": "6cf6408cd8c7aedc182552abc25970ede8e033409292304b75b62006b0ad9491",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "DelayedVetoable.delay() (src/L1/DelayedVetoable.sol#114-116) calls DelayedVetoable.readOrHandle() (src/L1/DelayedVetoable.sol#67-74) which halt the execution return(uint256,uint256)(returndata + 0x20,mload(uint256)(returndata)) (src/L1/DelayedVetoable.sol#190)\n",
    "type": "function",
    "name": "readOrHandle",
    "start": 2953,
    "length": 200,
    "filename_relative": "src/L1/DelayedVetoable.sol"
  },
  {
    "id": "6cf6408cd8c7aedc182552abc25970ede8e033409292304b75b62006b0ad9491",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "DelayedVetoable.delay() (src/L1/DelayedVetoable.sol#114-116) calls DelayedVetoable.readOrHandle() (src/L1/DelayedVetoable.sol#67-74) which halt the execution return(uint256,uint256)(returndata + 0x20,mload(uint256)(returndata)) (src/L1/DelayedVetoable.sol#190)\n",
    "type": "node",
    "name": "return(uint256,uint256)(returndata + 0x20,mload(uint256)(returndata))",
    "start": 7723,
    "length": 48,
    "filename_relative": "src/L1/DelayedVetoable.sol"
  },
  {
    "id": "98821b545d4849522091839fbd87144e6fcc256a73b9dd1817676bd127be6d8c",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "L1ChugSplashProxy.getOwner() (src/legacy/L1ChugSplashProxy.sol#145-147) calls L1ChugSplashProxy.proxyCallIfNotOwner() (src/legacy/L1ChugSplashProxy.sol#64-71) which halt the execution return(uint256,uint256)(0x0,returndatasize()()) (src/legacy/L1ChugSplashProxy.sol#196)\n",
    "type": "function",
    "name": "getOwner",
    "start": 7200,
    "length": 102,
    "filename_relative": "src/legacy/L1ChugSplashProxy.sol"
  },
  {
    "id": "98821b545d4849522091839fbd87144e6fcc256a73b9dd1817676bd127be6d8c",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "L1ChugSplashProxy.getOwner() (src/legacy/L1ChugSplashProxy.sol#145-147) calls L1ChugSplashProxy.proxyCallIfNotOwner() (src/legacy/L1ChugSplashProxy.sol#64-71) which halt the execution return(uint256,uint256)(0x0,returndatasize()()) (src/legacy/L1ChugSplashProxy.sol#196)\n",
    "type": "function",
    "name": "proxyCallIfNotOwner",
    "start": 3867,
    "length": 237,
    "filename_relative": "src/legacy/L1ChugSplashProxy.sol"
  },
  {
    "id": "98821b545d4849522091839fbd87144e6fcc256a73b9dd1817676bd127be6d8c",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "L1ChugSplashProxy.getOwner() (src/legacy/L1ChugSplashProxy.sol#145-147) calls L1ChugSplashProxy.proxyCallIfNotOwner() (src/legacy/L1ChugSplashProxy.sol#64-71) which halt the execution return(uint256,uint256)(0x0,returndatasize()()) (src/legacy/L1ChugSplashProxy.sol#196)\n",
    "type": "node",
    "name": "return(uint256,uint256)(0x0,returndatasize()())",
    "start": 9403,
    "length": 29,
    "filename_relative": "src/legacy/L1ChugSplashProxy.sol"
  },
  {
    "id": "c116aac23f49ec7d5d6574972abfbf02d56d0521ea2285dc09d239a829e7d2af",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "L1ChugSplashProxy.setStorage(bytes32,bytes32) (src/legacy/L1ChugSplashProxy.sol#130-134) calls L1ChugSplashProxy.proxyCallIfNotOwner() (src/legacy/L1ChugSplashProxy.sol#64-71) which halt the execution return(uint256,uint256)(0x0,returndatasize()()) (src/legacy/L1ChugSplashProxy.sol#196)\n",
    "type": "function",
    "name": "setStorage",
    "start": 6596,
    "length": 148,
    "filename_relative": "src/legacy/L1ChugSplashProxy.sol"
  },
  {
    "id": "c116aac23f49ec7d5d6574972abfbf02d56d0521ea2285dc09d239a829e7d2af",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "L1ChugSplashProxy.setStorage(bytes32,bytes32) (src/legacy/L1ChugSplashProxy.sol#130-134) calls L1ChugSplashProxy.proxyCallIfNotOwner() (src/legacy/L1ChugSplashProxy.sol#64-71) which halt the execution return(uint256,uint256)(0x0,returndatasize()()) (src/legacy/L1ChugSplashProxy.sol#196)\n",
    "type": "function",
    "name": "proxyCallIfNotOwner",
    "start": 3867,
    "length": 237,
    "filename_relative": "src/legacy/L1ChugSplashProxy.sol"
  },
  {
    "id": "c116aac23f49ec7d5d6574972abfbf02d56d0521ea2285dc09d239a829e7d2af",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "L1ChugSplashProxy.setStorage(bytes32,bytes32) (src/legacy/L1ChugSplashProxy.sol#130-134) calls L1ChugSplashProxy.proxyCallIfNotOwner() (src/legacy/L1ChugSplashProxy.sol#64-71) which halt the execution return(uint256,uint256)(0x0,returndatasize()()) (src/legacy/L1ChugSplashProxy.sol#196)\n",
    "type": "node",
    "name": "return(uint256,uint256)(0x0,returndatasize()())",
    "start": 9403,
    "length": 29,
    "filename_relative": "src/legacy/L1ChugSplashProxy.sol"
  },
  {
    "id": "d14996b9cc4486d4926155fb1f3d0c1ffc8be9b4af43a61074039356721c7e45",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "Proxy.proxyCallIfNotAdmin() (src/universal/Proxy.sol#26-33) calls Proxy._doProxyCall() (src/universal/Proxy.sol#123-145) which halt the execution return(uint256,uint256)(0x0,returndatasize()()) (src/universal/Proxy.sol#143)\n",
    "type": "function",
    "name": "proxyCallIfNotAdmin",
    "start": 1295,
    "length": 237,
    "filename_relative": "src/universal/Proxy.sol"
  },
  {
    "id": "d14996b9cc4486d4926155fb1f3d0c1ffc8be9b4af43a61074039356721c7e45",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "Proxy.proxyCallIfNotAdmin() (src/universal/Proxy.sol#26-33) calls Proxy._doProxyCall() (src/universal/Proxy.sol#123-145) which halt the execution return(uint256,uint256)(0x0,returndatasize()()) (src/universal/Proxy.sol#143)\n",
    "type": "function",
    "name": "_doProxyCall",
    "start": 4928,
    "length": 1039,
    "filename_relative": "src/universal/Proxy.sol"
  },
  {
    "id": "d14996b9cc4486d4926155fb1f3d0c1ffc8be9b4af43a61074039356721c7e45",
    "impact": "High",
    "confidence": "Medium",
    "check": "incorrect-return",
    "description": "Proxy.proxyCallIfNotAdmin() (src/universal/Proxy.sol#26-33) calls Proxy._doProxyCall() (src/universal/Proxy.sol#123-145) which halt the execution return(uint256,uint256)(0x0,returndatasize()()) (src/universal/Proxy.sol#143)\n",
    "type": "node",
    "name": "return(uint256,uint256)(0x0,returndatasize()())",
    "start": 5922,
    "length": 29,
    "filename_relative": "src/universal/Proxy.sol"
  },
  {
    "id": "fa673f7f315b9ee7fea38da72b4b0b0eb94babc8d0938536b00ce803ecc07fa2",
    "impact": "High",
    "confidence": "High",
    "check": "uninitialized-state",
    "description": "L1Block.blobBaseFee (src/L2/L1Block.sol#50) is never initialized. It is used in:\n\t- L1Block.setL1BlockValuesEcotone() (src/L2/L1Block.sol#101-118)\n",
    "type": "variable",
    "name": "blobBaseFee",
    "start": 1899,
    "length": 26,
    "filename_relative": "src/L2/L1Block.sol"
  },
  {
    "id": "fa673f7f315b9ee7fea38da72b4b0b0eb94babc8d0938536b00ce803ecc07fa2",
    "impact": "High",
    "confidence": "High",
    "check": "uninitialized-state",
    "description": "L1Block.blobBaseFee (src/L2/L1Block.sol#50) is never initialized. It is used in:\n\t- L1Block.setL1BlockValuesEcotone() (src/L2/L1Block.sol#101-118)\n",
    "type": "function",
    "name": "setL1BlockValuesEcotone",
    "start": 3886,
    "length": 956,
    "filename_relative": "src/L2/L1Block.sol"
  },
  {
    "id": "89460308ae3bd86a612657eb7bfe28221ced6a7a7fe723ec2a19149bfc819cb5",
    "impact": "Medium",
    "confidence": "High",
    "check": "locked-ether",
    "description": "Contract locking ether found:\n\tContract L2OutputOracle (src/L1/L2OutputOracle.sol#14-317) has payable functions:\n\t - L2OutputOracle.proposeL2Output(bytes32,uint256,bytes32,uint256) (src/L1/L2OutputOracle.sol#189-236)\n\tBut does not have a function to withdraw the ether\n",
    "type": "contract",
    "name": "L2OutputOracle",
    "start": 611,
    "length": 13467,
    "filename_relative": "src/L1/L2OutputOracle.sol"
  },
  {
    "id": "89460308ae3bd86a612657eb7bfe28221ced6a7a7fe723ec2a19149bfc819cb5",
    "impact": "Medium",
    "confidence": "High",
    "check": "locked-ether",
    "description": "Contract locking ether found:\n\tContract L2OutputOracle (src/L1/L2OutputOracle.sol#14-317) has payable functions:\n\t - L2OutputOracle.proposeL2Output(bytes32,uint256,bytes32,uint256) (src/L1/L2OutputOracle.sol#189-236)\n\tBut does not have a function to withdraw the ether\n",
    "type": "function",
    "name": "proposeL2Output",
    "start": 8300,
    "length": 1981,
    "filename_relative": "src/L1/L2OutputOracle.sol"
  },
  {
    "id": "c0920fe4b6b04a2b81f69b85402d465719d06978441052f49a6582415934a1bf",
    "impact": "Medium",
    "confidence": "High",
    "check": "locked-ether",
    "description": "Contract locking ether found:\n\tContract L1BlockNumber (src/legacy/L1BlockNumber.sol#16-45) has payable functions:\n\t - L1BlockNumber.receive() (src/legacy/L1BlockNumber.sol#22-28)\n\t - L1BlockNumber.fallback() (src/legacy/L1BlockNumber.sol#32-38)\n\tBut does not have a function to withdraw the ether\n",
    "type": "contract",
    "name": "L1BlockNumber",
    "start": 668,
    "length": 888,
    "filename_relative": "src/legacy/L1BlockNumber.sol"
  },
  {
    "id": "c0920fe4b6b04a2b81f69b85402d465719d06978441052f49a6582415934a1bf",
    "impact": "Medium",
    "confidence": "High",
    "check": "locked-ether",
    "description": "Contract locking ether found:\n\tContract L1BlockNumber (src/legacy/L1BlockNumber.sol#16-45) has payable functions:\n\t - L1BlockNumber.receive() (src/legacy/L1BlockNumber.sol#22-28)\n\t - L1BlockNumber.fallback() (src/legacy/L1BlockNumber.sol#32-38)\n\tBut does not have a function to withdraw the ether\n",
    "type": "function",
    "name": "receive",
    "start": 863,
    "length": 178,
    "filename_relative": "src/legacy/L1BlockNumber.sol"
  },
  {
    "id": "c0920fe4b6b04a2b81f69b85402d465719d06978441052f49a6582415934a1bf",
    "impact": "Medium",
    "confidence": "High",
    "check": "locked-ether",
    "description": "Contract locking ether found:\n\tContract L1BlockNumber (src/legacy/L1BlockNumber.sol#16-45) has payable functions:\n\t - L1BlockNumber.receive() (src/legacy/L1BlockNumber.sol#22-28)\n\t - L1BlockNumber.fallback() (src/legacy/L1BlockNumber.sol#32-38)\n\tBut does not have a function to withdraw the ether\n",
    "type": "function",
    "name": "fallback",
    "start": 1145,
    "length": 179,
    "filename_relative": "src/legacy/L1BlockNumber.sol"
  },
  {
    "id": "3e52f3459d6607e6494e893c33e98bfaee52639c20f8e8366a39b97d30efeb9d",
    "impact": "Medium",
    "confidence": "High",
    "check": "locked-ether",
    "description": "Contract locking ether found:\n\tContract SchemaResolver (src/EAS/resolver/SchemaResolver.sol#11-165) has payable functions:\n\t - ISchemaResolver.attest(Attestation) (src/EAS/resolver/ISchemaResolver.sol#16)\n\t - ISchemaResolver.multiAttest(Attestation[],uint256[]) (src/EAS/resolver/ISchemaResolver.sol#22-28)\n\t - ISchemaResolver.revoke(Attestation) (src/EAS/resolver/ISchemaResolver.sol#33)\n\t - ISchemaResolver.multiRevoke(Attestation[],uint256[]) (src/EAS/resolver/ISchemaResolver.sol#39-45)\n\t - SchemaResolver.receive() (src/EAS/resolver/SchemaResolver.sol#41-45)\n\t - SchemaResolver.attest(Attestation) (src/EAS/resolver/SchemaResolver.sol#48-50)\n\t - SchemaResolver.multiAttest(Attestation[],uint256[]) (src/EAS/resolver/SchemaResolver.sol#53-92)\n\t - SchemaResolver.revoke(Attestation) (src/EAS/resolver/SchemaResolver.sol#95-97)\n\t - SchemaResolver.multiRevoke(Attestation[],uint256[]) (src/EAS/resolver/SchemaResolver.sol#100-139)\n\tBut does not have a function to withdraw the ether\n",
    "type": "contract",
    "name": "SchemaResolver",
    "start": 350,
    "length": 5868,
    "filename_relative": "src/EAS/resolver/SchemaResolver.sol"
  },
  {
    "id": "3e52f3459d6607e6494e893c33e98bfaee52639c20f8e8366a39b97d30efeb9d",
    "impact": "Medium",
    "confidence": "High",
    "check": "locked-ether",
    "description": "Contract locking ether found:\n\tContract SchemaResolver (src/EAS/resolver/SchemaResolver.sol#11-165) has payable functions:\n\t - ISchemaResolver.attest(Attestation) (src/EAS/resolver/ISchemaResolver.sol#16)\n\t - ISchemaResolver.multiAttest(Attestation[],uint256[]) (src/EAS/resolver/ISchemaResolver.sol#22-28)\n\t - ISchemaResolver.revoke(Attestation) (src/EAS/resolver/ISchemaResolver.sol#33)\n\t - ISchemaResolver.multiRevoke(Attestation[],uint256[]) (src/EAS/resolver/ISchemaResolver.sol#39-45)\n\t - SchemaResolver.receive() (src/EAS/resolver/SchemaResolver.sol#41-45)\n\t - SchemaResolver.attest(Attestation) (src/EAS/resolver/SchemaResolver.sol#48-50)\n\t - SchemaResolver.multiAttest(Attestation[],uint256[]) (src/EAS/resolver/SchemaResolver.sol#53-92)\n\t - SchemaResolver.revoke(Attestation) (src/EAS/resolver/SchemaResolver.sol#95-97)\n\t - SchemaResolver.multiRevoke(Attestation[],uint256[]) (src/EAS/resolver/SchemaResolver.sol#100-139)\n\tBut does not have a function to withdraw the ether\n",
    "type": "function",
    "name": "attest",
    "start": 565,
    "length": 82,
    "filename_relative": "src/EAS/resolver/ISchemaResolver.sol"
  },
  {
    "id": "3e52f3459d6607e6494e893c33e98bfaee52639c20f8e8366a39b97d30efeb9d",
    "impact": "Medium",
    "confidence": "High",
    "check": "locked-ether",
    "description": "Contract locking ether found:\n\tContract SchemaResolver (src/EAS/resolver/SchemaResolver.sol#11-165) has payable functions:\n\t - ISchemaResolver.attest(Attestation) (src/EAS/resolver/ISchemaResolver.sol#16)\n\t - ISchemaResolver.multiAttest(Attestation[],uint256[]) (src/EAS/resolver/ISchemaResolver.sol#22-28)\n\t - ISchemaResolver.revoke(Attestation) (src/EAS/resolver/ISchemaResolver.sol#33)\n\t - ISchemaResolver.multiRevoke(Attestation[],uint256[]) (src/EAS/resolver/ISchemaResolver.sol#39-45)\n\t - SchemaResolver.receive() (src/EAS/resolver/SchemaResolver.sol#41-45)\n\t - SchemaResolver.attest(Attestation) (src/EAS/resolver/SchemaResolver.sol#48-50)\n\t - SchemaResolver.multiAttest(Attestation[],uint256[]) (src/EAS/resolver/SchemaResolver.sol#53-92)\n\t - SchemaResolver.revoke(Attestation) (src/EAS/resolver/SchemaResolver.sol#95-97)\n\t - SchemaResolver.multiRevoke(Attestation[],uint256[]) (src/EAS/resolver/SchemaResolver.sol#100-139)\n\tBut does not have a function to withdraw the ether\n",
    "type": "function",
    "name": "multiAttest",
    "start": 926,
    "length": 163,
    "filename_relative": "src/EAS/resolver/ISchemaResolver.sol"
  },
  {
    "id": "3e52f3459d6607e6494e893c33e98bfaee52639c20f8e8366a39b97d30efeb9d",
    "impact": "Medium",
    "confidence": "High",
    "check": "locked-ether",
    "description": "Contract locking ether found:\n\tContract SchemaResolver (src/EAS/resolver/SchemaResolver.sol#11-165) has payable functions:\n\t - ISchemaResolver.attest(Attestation) (src/EAS/resolver/ISchemaResolver.sol#16)\n\t - ISchemaResolver.multiAttest(Attestation[],uint256[]) (src/EAS/resolver/ISchemaResolver.sol#22-28)\n\t - ISchemaResolver.revoke(Attestation) (src/EAS/resolver/ISchemaResolver.sol#33)\n\t - ISchemaResolver.multiRevoke(Attestation[],uint256[]) (src/EAS/resolver/ISchemaResolver.sol#39-45)\n\t - SchemaResolver.receive() (src/EAS/resolver/SchemaResolver.sol#41-45)\n\t - SchemaResolver.attest(Attestation) (src/EAS/resolver/SchemaResolver.sol#48-50)\n\t - SchemaResolver.multiAttest(Attestation[],uint256[]) (src/EAS/resolver/SchemaResolver.sol#53-92)\n\t - SchemaResolver.revoke(Attestation) (src/EAS/resolver/SchemaResolver.sol#95-97)\n\t - SchemaResolver.multiRevoke(Attestation[],uint256[]) (src/EAS/resolver/SchemaResolver.sol#100-139)\n\tBut does not have a function to withdraw the ether\n",
    "type": "function",
    "name": "revoke",
    "start": 1305,
    "length": 82,
    "filename_relative": "src/EAS/resolver/ISchemaResolver.sol"
  },
  {
    "id": "3e52f3459d6607e6494e893c33e98bfaee52639c20f8e8366a39b97d30efeb9d",
    "impact": "Medium",
    "confidence": "High",
    "check": "locked-ether",
    "description": "Contract locking ether found:\n\tContract SchemaResolver (src/EAS/resolver/SchemaResolver.sol#11-165) has payable functions:\n\t - ISchemaResolver.attest(Attestation) (src/EAS/resolver/ISchemaResolver.sol#16)\n\t - ISchemaResolver.multiAttest(Attestation[],uint256[]) (src/EAS/resolver/ISchemaResolver.sol#22-28)\n\t - ISchemaResolver.revoke(Attestation) (src/EAS/resolver/ISchemaResolver.sol#33)\n\t - ISchemaResolver.multiRevoke(Attestation[],uint256[]) (src/EAS/resolver/ISchemaResolver.sol#39-45)\n\t - SchemaResolver.receive() (src/EAS/resolver/SchemaResolver.sol#41-45)\n\t - SchemaResolver.attest(Attestation) (src/EAS/resolver/SchemaResolver.sol#48-50)\n\t - SchemaResolver.multiAttest(Attestation[],uint256[]) (src/EAS/resolver/SchemaResolver.sol#53-92)\n\t - SchemaResolver.revoke(Attestation) (src/EAS/resolver/SchemaResolver.sol#95-97)\n\t - SchemaResolver.multiRevoke(Attestation[],uint256[]) (src/EAS/resolver/SchemaResolver.sol#100-139)\n\tBut does not have a function to withdraw the ether\n",
    "type": "function",
    "name": "multiRevoke",
    "start": 1695,
    "length": 163,
    "filename_relative": "src/EAS/resolver/ISchemaResolver.sol"
  },
  {
    "id": "3e52f3459d6607e6494e893c33e98bfaee52639c20f8e8366a39b97d30efeb9d",
    "impact": "Medium",
    "confidence": "High",
    "check": "locked-ether",
    "description": "Contract locking ether found:\n\tContract SchemaResolver (src/EAS/resolver/SchemaResolver.sol#11-165) has payable functions:\n\t - ISchemaResolver.attest(Attestation) (src/EAS/resolver/ISchemaResolver.sol#16)\n\t - ISchemaResolver.multiAttest(Attestation[],uint256[]) (src/EAS/resolver/ISchemaResolver.sol#22-28)\n\t - ISchemaResolver.revoke(Attestation) (src/EAS/resolver/ISchemaResolver.sol#33)\n\t - ISchemaResolver.multiRevoke(Attestation[],uint256[]) (src/EAS/resolver/ISchemaResolver.sol#39-45)\n\t - SchemaResolver.receive() (src/EAS/resolver/SchemaResolver.sol#41-45)\n\t - SchemaResolver.attest(Attestation) (src/EAS/resolver/SchemaResolver.sol#48-50)\n\t - SchemaResolver.multiAttest(Attestation[],uint256[]) (src/EAS/resolver/SchemaResolver.sol#53-92)\n\t - SchemaResolver.revoke(Attestation) (src/EAS/resolver/SchemaResolver.sol#95-97)\n\t - SchemaResolver.multiRevoke(Attestation[],uint256[]) (src/EAS/resolver/SchemaResolver.sol#100-139)\n\tBut does not have a function to withdraw the ether\n",
    "type": "function",
    "name": "receive",
    "start": 1054,
    "length": 113,
    "filename_relative": "src/EAS/resolver/SchemaResolver.sol"
  },
  {
    "id": "3e52f3459d6607e6494e893c33e98bfaee52639c20f8e8366a39b97d30efeb9d",
    "impact": "Medium",
    "confidence": "High",
    "check": "locked-ether",
    "description": "Contract locking ether found:\n\tContract SchemaResolver (src/EAS/resolver/SchemaResolver.sol#11-165) has payable functions:\n\t - ISchemaResolver.attest(Attestation) (src/EAS/resolver/ISchemaResolver.sol#16)\n\t - ISchemaResolver.multiAttest(Attestation[],uint256[]) (src/EAS/resolver/ISchemaResolver.sol#22-28)\n\t - ISchemaResolver.revoke(Attestation) (src/EAS/resolver/ISchemaResolver.sol#33)\n\t - ISchemaResolver.multiRevoke(Attestation[],uint256[]) (src/EAS/resolver/ISchemaResolver.sol#39-45)\n\t - SchemaResolver.receive() (src/EAS/resolver/SchemaResolver.sol#41-45)\n\t - SchemaResolver.attest(Attestation) (src/EAS/resolver/SchemaResolver.sol#48-50)\n\t - SchemaResolver.multiAttest(Attestation[],uint256[]) (src/EAS/resolver/SchemaResolver.sol#53-92)\n\t - SchemaResolver.revoke(Attestation) (src/EAS/resolver/SchemaResolver.sol#95-97)\n\t - SchemaResolver.multiRevoke(Attestation[],uint256[]) (src/EAS/resolver/SchemaResolver.sol#100-139)\n\tBut does not have a function to withdraw the ether\n",
    "type": "function",
    "name": "attest",
    "start": 1209,
    "length": 146,
    "filename_relative": "src/EAS/resolver/SchemaResolver.sol"
  },
  {
    "id": "3e52f3459d6607e6494e893c33e98bfaee52639c20f8e8366a39b97d30efeb9d",
    "impact": "Medium",
    "confidence": "High",
    "check": "locked-ether",
    "description": "Contract locking ether found:\n\tContract SchemaResolver (src/EAS/resolver/SchemaResolver.sol#11-165) has payable functions:\n\t - ISchemaResolver.attest(Attestation) (src/EAS/resolver/ISchemaResolver.sol#16)\n\t - ISchemaResolver.multiAttest(Attestation[],uint256[]) (src/EAS/resolver/ISchemaResolver.sol#22-28)\n\t - ISchemaResolver.revoke(Attestation) (src/EAS/resolver/ISchemaResolver.sol#33)\n\t - ISchemaResolver.multiRevoke(Attestation[],uint256[]) (src/EAS/resolver/ISchemaResolver.sol#39-45)\n\t - SchemaResolver.receive() (src/EAS/resolver/SchemaResolver.sol#41-45)\n\t - SchemaResolver.attest(Attestation) (src/EAS/resolver/SchemaResolver.sol#48-50)\n\t - SchemaResolver.multiAttest(Attestation[],uint256[]) (src/EAS/resolver/SchemaResolver.sol#53-92)\n\t - SchemaResolver.revoke(Attestation) (src/EAS/resolver/SchemaResolver.sol#95-97)\n\t - SchemaResolver.multiRevoke(Attestation[],uint256[]) (src/EAS/resolver/SchemaResolver.sol#100-139)\n\tBut does not have a function to withdraw the ether\n",
    "type": "function",
    "name": "multiAttest",
    "start": 1397,
    "length": 1497,
    "filename_relative": "src/EAS/resolver/SchemaResolver.sol"
  },
  {
    "id": "3e52f3459d6607e6494e893c33e98bfaee52639c20f8e8366a39b97d30efeb9d",
    "impact": "Medium",
    "confidence": "High",
    "check": "locked-ether",
    "description": "Contract locking ether found:\n\tContract SchemaResolver (src/EAS/resolver/SchemaResolver.sol#11-165) has payable functions:\n\t - ISchemaResolver.attest(Attestation) (src/EAS/resolver/ISchemaResolver.sol#16)\n\t - ISchemaResolver.multiAttest(Attestation[],uint256[]) (src/EAS/resolver/ISchemaResolver.sol#22-28)\n\t - ISchemaResolver.revoke(Attestation) (src/EAS/resolver/ISchemaResolver.sol#33)\n\t - ISchemaResolver.multiRevoke(Attestation[],uint256[]) (src/EAS/resolver/ISchemaResolver.sol#39-45)\n\t - SchemaResolver.receive() (src/EAS/resolver/SchemaResolver.sol#41-45)\n\t - SchemaResolver.attest(Attestation) (src/EAS/resolver/SchemaResolver.sol#48-50)\n\t - SchemaResolver.multiAttest(Attestation[],uint256[]) (src/EAS/resolver/SchemaResolver.sol#53-92)\n\t - SchemaResolver.revoke(Attestation) (src/EAS/resolver/SchemaResolver.sol#95-97)\n\t - SchemaResolver.multiRevoke(Attestation[],uint256[]) (src/EAS/resolver/SchemaResolver.sol#100-139)\n\tBut does not have a function to withdraw the ether\n",
    "type": "function",
    "name": "revoke",
    "start": 2936,
    "length": 146,
    "filename_relative": "src/EAS/resolver/SchemaResolver.sol"
  },
  {
    "id": "3e52f3459d6607e6494e893c33e98bfaee52639c20f8e8366a39b97d30efeb9d",
    "impact": "Medium",
    "confidence": "High",
    "check": "locked-ether",
    "description": "Contract locking ether found:\n\tContract SchemaResolver (src/EAS/resolver/SchemaResolver.sol#11-165) has payable functions:\n\t - ISchemaResolver.attest(Attestation) (src/EAS/resolver/ISchemaResolver.sol#16)\n\t - ISchemaResolver.multiAttest(Attestation[],uint256[]) (src/EAS/resolver/ISchemaResolver.sol#22-28)\n\t - ISchemaResolver.revoke(Attestation) (src/EAS/resolver/ISchemaResolver.sol#33)\n\t - ISchemaResolver.multiRevoke(Attestation[],uint256[]) (src/EAS/resolver/ISchemaResolver.sol#39-45)\n\t - SchemaResolver.receive() (src/EAS/resolver/SchemaResolver.sol#41-45)\n\t - SchemaResolver.attest(Attestation) (src/EAS/resolver/SchemaResolver.sol#48-50)\n\t - SchemaResolver.multiAttest(Attestation[],uint256[]) (src/EAS/resolver/SchemaResolver.sol#53-92)\n\t - SchemaResolver.revoke(Attestation) (src/EAS/resolver/SchemaResolver.sol#95-97)\n\t - SchemaResolver.multiRevoke(Attestation[],uint256[]) (src/EAS/resolver/SchemaResolver.sol#100-139)\n\tBut does not have a function to withdraw the ether\n",
    "type": "function",
    "name": "multiRevoke",
    "start": 3124,
    "length": 1496,
    "filename_relative": "src/EAS/resolver/SchemaResolver.sol"
  },
  {
    "id": "1349b68c3b08ecdf27782bd74d9fecadf1739eef738171cbbba403c77a29f424",
    "impact": "Medium",
    "confidence": "Medium",
    "check": "reentrancy-no-eth",
    "description": "Reentrancy in TransferOnion.peel(TransferOnion.Layer[]) (src/periphery/TransferOnion.sol#44-70):\n\tExternal calls:\n\t- TOKEN.safeTransferFrom(SENDER,layer.recipient,layer.amount) (src/periphery/TransferOnion.sol#61)\n\tState variables written after the call(s):\n\t- shell = tempShell (src/periphery/TransferOnion.sol#69)\n\tTransferOnion.shell (src/periphery/TransferOnion.sol#30) can be used in cross function reentrancies:\n\t- TransferOnion.constructor(ERC20,address,bytes32) (src/periphery/TransferOnion.sol#36-40)\n\t- TransferOnion.shell (src/periphery/TransferOnion.sol#30)\n",
    "type": "function",
    "name": "peel",
    "start": 1616,
    "length": 885,
    "filename_relative": "src/periphery/TransferOnion.sol"
  },
  {
    "id": "1349b68c3b08ecdf27782bd74d9fecadf1739eef738171cbbba403c77a29f424",
    "impact": "Medium",
    "confidence": "Medium",
    "check": "reentrancy-no-eth",
    "description": "Reentrancy in TransferOnion.peel(TransferOnion.Layer[]) (src/periphery/TransferOnion.sol#44-70):\n\tExternal calls:\n\t- TOKEN.safeTransferFrom(SENDER,layer.recipient,layer.amount) (src/periphery/TransferOnion.sol#61)\n\tState variables written after the call(s):\n\t- shell = tempShell (src/periphery/TransferOnion.sol#69)\n\tTransferOnion.shell (src/periphery/TransferOnion.sol#30) can be used in cross function reentrancies:\n\t- TransferOnion.constructor(ERC20,address,bytes32) (src/periphery/TransferOnion.sol#36-40)\n\t- TransferOnion.shell (src/periphery/TransferOnion.sol#30)\n",
    "type": "node",
    "name": "TOKEN.safeTransferFrom(SENDER,layer.recipient,layer.amount)",
    "start": 2282,
    "length": 61,
    "filename_relative": "src/periphery/TransferOnion.sol"
  },
  {
    "id": "1349b68c3b08ecdf27782bd74d9fecadf1739eef738171cbbba403c77a29f424",
    "impact": "Medium",
    "confidence": "Medium",
    "check": "reentrancy-no-eth",
    "description": "Reentrancy in TransferOnion.peel(TransferOnion.Layer[]) (src/periphery/TransferOnion.sol#44-70):\n\tExternal calls:\n\t- TOKEN.safeTransferFrom(SENDER,layer.recipient,layer.amount) (src/periphery/TransferOnion.sol#61)\n\tState variables written after the call(s):\n\t- shell = tempShell (src/periphery/TransferOnion.sol#69)\n\tTransferOnion.shell (src/periphery/TransferOnion.sol#30) can be used in cross function reentrancies:\n\t- TransferOnion.constructor(ERC20,address,bytes32) (src/periphery/TransferOnion.sol#36-40)\n\t- TransferOnion.shell (src/periphery/TransferOnion.sol#30)\n",
    "type": "node",
    "name": "shell = tempShell",
    "start": 2477,
    "length": 17,
    "filename_relative": "src/periphery/TransferOnion.sol"
  },
  {
    "id": "14134bc23d372275d187f91848cac770b21d8451fa7b979380dc2ac94588945b",
    "impact": "Medium",
    "confidence": "Medium",
    "check": "reentrancy-no-eth",
    "description": "Reentrancy in DelayedVetoable._handleCall() (src/L1/DelayedVetoable.sol#133-181):\n\tExternal calls:\n\t- _forwardAndHalt(callHash) (src/L1/DelayedVetoable.sol#150)\n\t\t- (success,returndata) = TARGET.call(msg.data) (src/L1/DelayedVetoable.sol#187)\n\tState variables written after the call(s):\n\t- _queuedAt[callHash] = block.timestamp (src/L1/DelayedVetoable.sol#152)\n\tDelayedVetoable._queuedAt (src/L1/DelayedVetoable.sol#61) can be used in cross function reentrancies:\n\t- DelayedVetoable._handleCall() (src/L1/DelayedVetoable.sol#133-181)\n\t- DelayedVetoable.queuedAt(bytes32) (src/L1/DelayedVetoable.sol#121-123)\n",
    "type": "function",
    "name": "_handleCall",
    "start": 5365,
    "length": 2009,
    "filename_relative": "src/L1/DelayedVetoable.sol"
  },
  {
    "id": "14134bc23d372275d187f91848cac770b21d8451fa7b979380dc2ac94588945b",
    "impact": "Medium",
    "confidence": "Medium",
    "check": "reentrancy-no-eth",
    "description": "Reentrancy in DelayedVetoable._handleCall() (src/L1/DelayedVetoable.sol#133-181):\n\tExternal calls:\n\t- _forwardAndHalt(callHash) (src/L1/DelayedVetoable.sol#150)\n\t\t- (success,returndata) = TARGET.call(msg.data) (src/L1/DelayedVetoable.sol#187)\n\tState variables written after the call(s):\n\t- _queuedAt[callHash] = block.timestamp (src/L1/DelayedVetoable.sol#152)\n\tDelayedVetoable._queuedAt (src/L1/DelayedVetoable.sol#61) can be used in cross function reentrancies:\n\t- DelayedVetoable._handleCall() (src/L1/DelayedVetoable.sol#133-181)\n\t- DelayedVetoable.queuedAt(bytes32) (src/L1/DelayedVetoable.sol#121-123)\n",
    "type": "node",
    "name": "_forwardAndHalt(callHash)",
    "start": 6102,
    "length": 25,
    "filename_relative": "src/L1/DelayedVetoable.sol"
  },
  {
    "id": "14134bc23d372275d187f91848cac770b21d8451fa7b979380dc2ac94588945b",
    "impact": "Medium",
    "confidence": "Medium",
    "check": "reentrancy-no-eth",
    "description": "Reentrancy in DelayedVetoable._handleCall() (src/L1/DelayedVetoable.sol#133-181):\n\tExternal calls:\n\t- _forwardAndHalt(callHash) (src/L1/DelayedVetoable.sol#150)\n\t\t- (success,returndata) = TARGET.call(msg.data) (src/L1/DelayedVetoable.sol#187)\n\tState variables written after the call(s):\n\t- _queuedAt[callHash] = block.timestamp (src/L1/DelayedVetoable.sol#152)\n\tDelayedVetoable._queuedAt (src/L1/DelayedVetoable.sol#61) can be used in cross function reentrancies:\n\t- DelayedVetoable._handleCall() (src/L1/DelayedVetoable.sol#133-181)\n\t- DelayedVetoable.queuedAt(bytes32) (src/L1/DelayedVetoable.sol#121-123)\n",
    "type": "node",
    "name": "(success,returndata) = TARGET.call(msg.data)",
    "start": 7588,
    "length": 63,
    "filename_relative": "src/L1/DelayedVetoable.sol"
  },
  {
    "id": "14134bc23d372275d187f91848cac770b21d8451fa7b979380dc2ac94588945b",
    "impact": "Medium",
    "confidence": "Medium",
    "check": "reentrancy-no-eth",
    "description": "Reentrancy in DelayedVetoable._handleCall() (src/L1/DelayedVetoable.sol#133-181):\n\tExternal calls:\n\t- _forwardAndHalt(callHash) (src/L1/DelayedVetoable.sol#150)\n\t\t- (success,returndata) = TARGET.call(msg.data) (src/L1/DelayedVetoable.sol#187)\n\tState variables written after the call(s):\n\t- _queuedAt[callHash] = block.timestamp (src/L1/DelayedVetoable.sol#152)\n\tDelayedVetoable._queuedAt (src/L1/DelayedVetoable.sol#61) can be used in cross function reentrancies:\n\t- DelayedVetoable._handleCall() (src/L1/DelayedVetoable.sol#133-181)\n\t- DelayedVetoable.queuedAt(bytes32) (src/L1/DelayedVetoable.sol#121-123)\n",
    "type": "node",
    "name": "_queuedAt[callHash] = block.timestamp",
    "start": 6155,
    "length": 37,
    "filename_relative": "src/L1/DelayedVetoable.sol"
  },
  {
    "id": "a31cc22ac44058d56b0a89d6a2ab1dbe6791d75f6d06397eebf72a6d932e82c2",
    "impact": "Medium",
    "confidence": "Medium",
    "check": "reentrancy-no-eth",
    "description": "Reentrancy in FaultDisputeGame.step(uint256,bool,bytes,bytes) (src/dispute/FaultDisputeGame.sol#124-191):\n\tExternal calls:\n\t- validStep = VM.step(_stateData,_proof,uuid.raw()) == postState.claim.raw() (src/dispute/FaultDisputeGame.sol#184)\n\tState variables written after the call(s):\n\t- parent.counteredBy = msg.sender (src/dispute/FaultDisputeGame.sol#190)\n\tFaultDisputeGame.claimData (src/dispute/FaultDisputeGame.sol#66) can be used in cross function reentrancies:\n\t- FaultDisputeGame._findStartingAndDisputedOutputs(uint256) (src/dispute/FaultDisputeGame.sol#668-727)\n\t- FaultDisputeGame._findTraceAncestor(Position,uint256,bool) (src/dispute/FaultDisputeGame.sol#641-659)\n\t- FaultDisputeGame.claimData (src/dispute/FaultDisputeGame.sol#66)\n\t- FaultDisputeGame.claimDataLen() (src/dispute/FaultDisputeGame.sol#516-518)\n\t- FaultDisputeGame.initialize() (src/dispute/FaultDisputeGame.sol#460-513)\n\t- FaultDisputeGame.move(uint256,Claim,bool) (src/dispute/FaultDisputeGame.sol#197-288)\n\t- FaultDisputeGame.resolve() (src/dispute/FaultDisputeGame.sol#353-365)\n\t- FaultDisputeGame.resolveClaim(uint256) (src/dispute/FaultDisputeGame.sol#368-434)\n\t- FaultDisputeGame.step(uint256,bool,bytes,bytes) (src/dispute/FaultDisputeGame.sol#124-191)\n",
    "type": "function",
    "name": "step",
    "start": 4981,
    "length": 4228,
    "filename_relative": "src/dispute/FaultDisputeGame.sol"
  },
  {
    "id": "a31cc22ac44058d56b0a89d6a2ab1dbe6791d75f6d06397eebf72a6d932e82c2",
    "impact": "Medium",
    "confidence": "Medium",
    "check": "reentrancy-no-eth",
    "description": "Reentrancy in FaultDisputeGame.step(uint256,bool,bytes,bytes) (src/dispute/FaultDisputeGame.sol#124-191):\n\tExternal calls:\n\t- validStep = VM.step(_stateData,_proof,uuid.raw()) == postState.claim.raw() (src/dispute/FaultDisputeGame.sol#184)\n\tState variables written after the call(s):\n\t- parent.counteredBy = msg.sender (src/dispute/FaultDisputeGame.sol#190)\n\tFaultDisputeGame.claimData (src/dispute/FaultDisputeGame.sol#66) can be used in cross function reentrancies:\n\t- FaultDisputeGame._findStartingAndDisputedOutputs(uint256) (src/dispute/FaultDisputeGame.sol#668-727)\n\t- FaultDisputeGame._findTraceAncestor(Position,uint256,bool) (src/dispute/FaultDisputeGame.sol#641-659)\n\t- FaultDisputeGame.claimData (src/dispute/FaultDisputeGame.sol#66)\n\t- FaultDisputeGame.claimDataLen() (src/dispute/FaultDisputeGame.sol#516-518)\n\t- FaultDisputeGame.initialize() (src/dispute/FaultDisputeGame.sol#460-513)\n\t- FaultDisputeGame.move(uint256,Claim,bool) (src/dispute/FaultDisputeGame.sol#197-288)\n\t- FaultDisputeGame.resolve() (src/dispute/FaultDisputeGame.sol#353-365)\n\t- FaultDisputeGame.resolveClaim(uint256) (src/dispute/FaultDisputeGame.sol#368-434)\n\t- FaultDisputeGame.step(uint256,bool,bytes,bytes) (src/dispute/FaultDisputeGame.sol#124-191)\n",
    "type": "node",
    "name": "validStep = VM.step(_stateData,_proof,uuid.raw()) == postState.claim.raw()",
    "start": 8761,
    "length": 81,
    "filename_relative": "src/dispute/FaultDisputeGame.sol"
  },
  {
    "id": "a31cc22ac44058d56b0a89d6a2ab1dbe6791d75f6d06397eebf72a6d932e82c2",
    "impact": "Medium",
    "confidence": "Medium",
    "check": "reentrancy-no-eth",
    "description": "Reentrancy in FaultDisputeGame.step(uint256,bool,bytes,bytes) (src/dispute/FaultDisputeGame.sol#124-191):\n\tExternal calls:\n\t- validStep = VM.step(_stateData,_proof,uuid.raw()) == postState.claim.raw() (src/dispute/FaultDisputeGame.sol#184)\n\tState variables written after the call(s):\n\t- parent.counteredBy = msg.sender (src/dispute/FaultDisputeGame.sol#190)\n\tFaultDisputeGame.claimData (src/dispute/FaultDisputeGame.sol#66) can be used in cross function reentrancies:\n\t- FaultDisputeGame._findStartingAndDisputedOutputs(uint256) (src/dispute/FaultDisputeGame.sol#668-727)\n\t- FaultDisputeGame._findTraceAncestor(Position,uint256,bool) (src/dispute/FaultDisputeGame.sol#641-659)\n\t- FaultDisputeGame.claimData (src/dispute/FaultDisputeGame.sol#66)\n\t- FaultDisputeGame.claimDataLen() (src/dispute/FaultDisputeGame.sol#516-518)\n\t- FaultDisputeGame.initialize() (src/dispute/FaultDisputeGame.sol#460-513)\n\t- FaultDisputeGame.move(uint256,Claim,bool) (src/dispute/FaultDisputeGame.sol#197-288)\n\t- FaultDisputeGame.resolve() (src/dispute/FaultDisputeGame.sol#353-365)\n\t- FaultDisputeGame.resolveClaim(uint256) (src/dispute/FaultDisputeGame.sol#368-434)\n\t- FaultDisputeGame.step(uint256,bool,bytes,bytes) (src/dispute/FaultDisputeGame.sol#124-191)\n",
    "type": "node",
    "name": "parent.counteredBy = msg.sender",
    "start": 9171,
    "length": 31,
    "filename_relative": "src/dispute/FaultDisputeGame.sol"
  },
  {
    "id": "3702aae0a8031af92233fa312a75b60518153a9f80ad2e6157debb825eec5ba1",
    "impact": "Medium",
    "confidence": "Medium",
    "check": "tx-origin",
    "description": "CrossDomainMessenger.relayMessage(uint256,address,address,uint256,uint256,bytes) (src/universal/CrossDomainMessenger.sol#207-305) uses tx.origin for authorization: tx.origin == Constants.ESTIMATION_ADDRESS (src/universal/CrossDomainMessenger.sol#301)\n",
    "type": "function",
    "name": "relayMessage",
    "start": 10315,
    "length": 5066,
    "filename_relative": "src/universal/CrossDomainMessenger.sol"
  },
  {
    "id": "3702aae0a8031af92233fa312a75b60518153a9f80ad2e6157debb825eec5ba1",
    "impact": "Medium",
    "confidence": "Medium",
    "check": "tx-origin",
    "description": "CrossDomainMessenger.relayMessage(uint256,address,address,uint256,uint256,bytes) (src/universal/CrossDomainMessenger.sol#207-305) uses tx.origin for authorization: tx.origin == Constants.ESTIMATION_ADDRESS (src/universal/CrossDomainMessenger.sol#301)\n",
    "type": "node",
    "name": "tx.origin == Constants.ESTIMATION_ADDRESS",
    "start": 15234,
    "length": 41,
    "filename_relative": "src/universal/CrossDomainMessenger.sol"
  },
  {
    "id": "7d4963a32dc1dafcf8cfac2d7ac767f3cf4a2ee7ffa0cbd4ff7e6dbdf4d47727",
    "impact": "Medium",
    "confidence": "Medium",
    "check": "tx-origin",
    "description": "OptimismPortal2.finalizeWithdrawalTransaction(Types.WithdrawalTransaction) (src/L1/OptimismPortal2.sol#308-390) uses tx.origin for authorization: ! success && tx.origin == Constants.ESTIMATION_ADDRESS (src/L1/OptimismPortal2.sol#387)\n",
    "type": "function",
    "name": "finalizeWithdrawalTransaction",
    "start": 14716,
    "length": 4789,
    "filename_relative": "src/L1/OptimismPortal2.sol"
  },
  {
    "id": "7d4963a32dc1dafcf8cfac2d7ac767f3cf4a2ee7ffa0cbd4ff7e6dbdf4d47727",
    "impact": "Medium",
    "confidence": "Medium",
    "check": "tx-origin",
    "description": "OptimismPortal2.finalizeWithdrawalTransaction(Types.WithdrawalTransaction) (src/L1/OptimismPortal2.sol#308-390) uses tx.origin for authorization: ! success && tx.origin == Constants.ESTIMATION_ADDRESS (src/L1/OptimismPortal2.sol#387)\n",
    "type": "node",
    "name": "! success && tx.origin == Constants.ESTIMATION_ADDRESS",
    "start": 19376,
    "length": 53,
    "filename_relative": "src/L1/OptimismPortal2.sol"
  },
  {
    "id": "b507540468fdf3f9972d33e723efb8c120f8d824ffe54842e1e998244944abaf",
    "impact": "Medium",
    "confidence": "Medium",
    "check": "tx-origin",
    "description": "OptimismPortal.finalizeWithdrawalTransaction(Types.WithdrawalTransaction) (src/L1/OptimismPortal.sol#280-363) uses tx.origin for authorization: success == false && tx.origin == Constants.ESTIMATION_ADDRESS (src/L1/OptimismPortal.sol#360)\n",
    "type": "function",
    "name": "finalizeWithdrawalTransaction",
    "start": 13252,
    "length": 4839,
    "filename_relative": "src/L1/OptimismPortal.sol"
  },
  {
    "id": "b507540468fdf3f9972d33e723efb8c120f8d824ffe54842e1e998244944abaf",
    "impact": "Medium",
    "confidence": "Medium",
    "check": "tx-origin",
    "description": "OptimismPortal.finalizeWithdrawalTransaction(Types.WithdrawalTransaction) (src/L1/OptimismPortal.sol#280-363) uses tx.origin for authorization: success == false && tx.origin == Constants.ESTIMATION_ADDRESS (src/L1/OptimismPortal.sol#360)\n",
    "type": "node",
    "name": "success == false && tx.origin == Constants.ESTIMATION_ADDRESS",
    "start": 17954,
    "length": 61,
    "filename_relative": "src/L1/OptimismPortal.sol"
  },
  {
    "id": "baf2bfa9777021d9e36870b76a1020c950de67bbf00d486f604cc72d36c47839",
    "impact": "Medium",
    "confidence": "Medium",
    "check": "tx-origin",
    "description": "CrossDomainMessenger.relayMessage(uint256,address,address,uint256,uint256,bytes) (src/universal/CrossDomainMessenger.sol#207-305) uses tx.origin for authorization: tx.origin == Constants.ESTIMATION_ADDRESS (src/universal/CrossDomainMessenger.sol#275)\n",
    "type": "function",
    "name": "relayMessage",
    "start": 10315,
    "length": 5066,
    "filename_relative": "src/universal/CrossDomainMessenger.sol"
  },
  {
    "id": "baf2bfa9777021d9e36870b76a1020c950de67bbf00d486f604cc72d36c47839",
    "impact": "Medium",
    "confidence": "Medium",
    "check": "tx-origin",
    "description": "CrossDomainMessenger.relayMessage(uint256,address,address,uint256,uint256,bytes) (src/universal/CrossDomainMessenger.sol#207-305) uses tx.origin for authorization: tx.origin == Constants.ESTIMATION_ADDRESS (src/universal/CrossDomainMessenger.sol#275)\n",
    "type": "node",
    "name": "tx.origin == Constants.ESTIMATION_ADDRESS",
    "start": 13912,
    "length": 41,
    "filename_relative": "src/universal/CrossDomainMessenger.sol"
  },
  {
    "id": "ef5cd67f78205ab8eebc31cd1bf78fa51ac2f8ab4d776a5d08bed46c9f1d13fc",
    "impact": "Medium",
    "confidence": "High",
    "check": "tautology",
    "description": "DisputeGameFactory.findLatestGames(GameType,uint256,uint256) (src/dispute/DisputeGameFactory.sol#137-177) contains a tautology or contradiction:\n\t- i >= 0 && i <= _start (src/dispute/DisputeGameFactory.sol#157)\n",
    "type": "function",
    "name": "findLatestGames",
    "start": 5076,
    "length": 1595,
    "filename_relative": "src/dispute/DisputeGameFactory.sol"
  },
  {
    "id": "ef5cd67f78205ab8eebc31cd1bf78fa51ac2f8ab4d776a5d08bed46c9f1d13fc",
    "impact": "Medium",
    "confidence": "High",
    "check": "tautology",
    "description": "DisputeGameFactory.findLatestGames(GameType,uint256,uint256) (src/dispute/DisputeGameFactory.sol#137-177) contains a tautology or contradiction:\n\t- i >= 0 && i <= _start (src/dispute/DisputeGameFactory.sol#157)\n",
    "type": "node",
    "name": "i >= 0 && i <= _start",
    "start": 5923,
    "length": 21,
    "filename_relative": "src/dispute/DisputeGameFactory.sol"
  },
  {
    "id": "0369380fef18a61639eac6a12773df792e9969e7bb20eddde54ccf3a263a0987",
    "impact": "Medium",
    "confidence": "Medium",
    "check": "uninitialized-local",
    "description": "FaultDisputeGame.move(uint256,Claim,bool).grandparentClock (src/dispute/FaultDisputeGame.sol#235) is a local variable never initialized\n",
    "type": "variable",
    "name": "grandparentClock",
    "start": 11863,
    "length": 22,
    "filename_relative": "src/dispute/FaultDisputeGame.sol"
  },
  {
    "id": "037c6a008887de2859c40f66cb99806d2e25ea8d4b0658d3fdc448e77c20439b",
    "impact": "Medium",
    "confidence": "Medium",
    "check": "uninitialized-local",
    "description": "PreimageOracle.challengeFirstLPP(address,uint256,PreimageOracle.Leaf,bytes32[]).stateMatrix (src/cannon/PreimageOracle.sol#541) is a local variable never initialized\n",
    "type": "variable",
    "name": "stateMatrix",
    "start": 25480,
    "length": 40,
    "filename_relative": "src/cannon/PreimageOracle.sol"
  },
  {
    "id": "8c229f5475784b2e9526e30d55b066e479489bca4b07c4f062b42b5b70100794",
    "impact": "Medium",
    "confidence": "Medium",
    "check": "uninitialized-local",
    "description": "FaultDisputeGame._findStartingAndDisputedOutputs(uint256).currentDepth (src/dispute/FaultDisputeGame.sol#686) is a local variable never initialized\n",
    "type": "variable",
    "name": "currentDepth",
    "start": 32709,
    "length": 20,
    "filename_relative": "src/dispute/FaultDisputeGame.sol"
  },
  {
    "id": "7dadbc3ea20cc8f9e628681fed9b1d804359f2f8e3ec7b768e65a39d72eb2db7",
    "impact": "Medium",
    "confidence": "High",
    "check": "write-after-write",
    "description": "OptimismPortal2.l2Sender (src/L1/OptimismPortal2.sol#54) is written in both\n\tl2Sender = _tx.sender (src/L1/OptimismPortal2.sol#366)\n\tl2Sender = Constants.DEFAULT_L2_SENDER (src/L1/OptimismPortal2.sol#378)\n",
    "type": "variable",
    "name": "l2Sender",
    "start": 2796,
    "length": 23,
    "filename_relative": "src/L1/OptimismPortal2.sol"
  },
  {
    "id": "7dadbc3ea20cc8f9e628681fed9b1d804359f2f8e3ec7b768e65a39d72eb2db7",
    "impact": "Medium",
    "confidence": "High",
    "check": "write-after-write",
    "description": "OptimismPortal2.l2Sender (src/L1/OptimismPortal2.sol#54) is written in both\n\tl2Sender = _tx.sender (src/L1/OptimismPortal2.sol#366)\n\tl2Sender = Constants.DEFAULT_L2_SENDER (src/L1/OptimismPortal2.sol#378)\n",
    "type": "node",
    "name": "l2Sender = _tx.sender",
    "start": 18077,
    "length": 21,
    "filename_relative": "src/L1/OptimismPortal2.sol"
  },
  {
    "id": "7dadbc3ea20cc8f9e628681fed9b1d804359f2f8e3ec7b768e65a39d72eb2db7",
    "impact": "Medium",
    "confidence": "High",
    "check": "write-after-write",
    "description": "OptimismPortal2.l2Sender (src/L1/OptimismPortal2.sol#54) is written in both\n\tl2Sender = _tx.sender (src/L1/OptimismPortal2.sol#366)\n\tl2Sender = Constants.DEFAULT_L2_SENDER (src/L1/OptimismPortal2.sol#378)\n",
    "type": "node",
    "name": "l2Sender = Constants.DEFAULT_L2_SENDER",
    "start": 18871,
    "length": 38,
    "filename_relative": "src/L1/OptimismPortal2.sol"
  },
  {
    "id": "858b95108475bbb08343b6f5701b03c0762d00b73cec53751173e93c3ec10c1a",
    "impact": "Medium",
    "confidence": "High",
    "check": "write-after-write",
    "description": "CrossDomainMessenger.xDomainMsgSender (src/universal/CrossDomainMessenger.sol#126) is written in both\n\txDomainMsgSender = _sender (src/universal/CrossDomainMessenger.sol#282)\n\txDomainMsgSender = Constants.DEFAULT_L2_SENDER (src/universal/CrossDomainMessenger.sol#284)\n",
    "type": "variable",
    "name": "xDomainMsgSender",
    "start": 5649,
    "length": 33,
    "filename_relative": "src/universal/CrossDomainMessenger.sol"
  },
  {
    "id": "858b95108475bbb08343b6f5701b03c0762d00b73cec53751173e93c3ec10c1a",
    "impact": "Medium",
    "confidence": "High",
    "check": "write-after-write",
    "description": "CrossDomainMessenger.xDomainMsgSender (src/universal/CrossDomainMessenger.sol#126) is written in both\n\txDomainMsgSender = _sender (src/universal/CrossDomainMessenger.sol#282)\n\txDomainMsgSender = Constants.DEFAULT_L2_SENDER (src/universal/CrossDomainMessenger.sol#284)\n",
    "type": "node",
    "name": "xDomainMsgSender = _sender",
    "start": 14084,
    "length": 26,
    "filename_relative": "src/universal/CrossDomainMessenger.sol"
  },
  {
    "id": "858b95108475bbb08343b6f5701b03c0762d00b73cec53751173e93c3ec10c1a",
    "impact": "Medium",
    "confidence": "High",
    "check": "write-after-write",
    "description": "CrossDomainMessenger.xDomainMsgSender (src/universal/CrossDomainMessenger.sol#126) is written in both\n\txDomainMsgSender = _sender (src/universal/CrossDomainMessenger.sol#282)\n\txDomainMsgSender = Constants.DEFAULT_L2_SENDER (src/universal/CrossDomainMessenger.sol#284)\n",
    "type": "node",
    "name": "xDomainMsgSender = Constants.DEFAULT_L2_SENDER",
    "start": 14217,
    "length": 46,
    "filename_relative": "src/universal/CrossDomainMessenger.sol"
  },
  {
    "id": "a43b8cff6d6b33609e8c7e3e89af17a0bc9ec73eb9a1a1b796e69c36ce8bcf71",
    "impact": "Medium",
    "confidence": "High",
    "check": "write-after-write",
    "description": "OptimismPortal.l2Sender (src/L1/OptimismPortal.sol#43) is written in both\n\tl2Sender = _tx.sender (src/L1/OptimismPortal.sol#339)\n\tl2Sender = Constants.DEFAULT_L2_SENDER (src/L1/OptimismPortal.sol#351)\n",
    "type": "variable",
    "name": "l2Sender",
    "start": 2193,
    "length": 23,
    "filename_relative": "src/L1/OptimismPortal.sol"
  },
  {
    "id": "a43b8cff6d6b33609e8c7e3e89af17a0bc9ec73eb9a1a1b796e69c36ce8bcf71",
    "impact": "Medium",
    "confidence": "High",
    "check": "write-after-write",
    "description": "OptimismPortal.l2Sender (src/L1/OptimismPortal.sol#43) is written in both\n\tl2Sender = _tx.sender (src/L1/OptimismPortal.sol#339)\n\tl2Sender = Constants.DEFAULT_L2_SENDER (src/L1/OptimismPortal.sol#351)\n",
    "type": "node",
    "name": "l2Sender = _tx.sender",
    "start": 16655,
    "length": 21,
    "filename_relative": "src/L1/OptimismPortal.sol"
  },
  {
    "id": "a43b8cff6d6b33609e8c7e3e89af17a0bc9ec73eb9a1a1b796e69c36ce8bcf71",
    "impact": "Medium",
    "confidence": "High",
    "check": "write-after-write",
    "description": "OptimismPortal.l2Sender (src/L1/OptimismPortal.sol#43) is written in both\n\tl2Sender = _tx.sender (src/L1/OptimismPortal.sol#339)\n\tl2Sender = Constants.DEFAULT_L2_SENDER (src/L1/OptimismPortal.sol#351)\n",
    "type": "node",
    "name": "l2Sender = Constants.DEFAULT_L2_SENDER",
    "start": 17449,
    "length": 38,
    "filename_relative": "src/L1/OptimismPortal.sol"
  }
]
