[
  {
    "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-296) has payable functions:\n\t - L2OutputOracle.proposeL2Output(bytes32,uint256,bytes32,uint256) (src/L1/L2OutputOracle.sol#168-215)\n\tBut does not have a function to withdraw the ether\n",
    "type": "contract",
    "name": "L2OutputOracle",
    "start": 611,
    "length": 12768,
    "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-296) has payable functions:\n\t - L2OutputOracle.proposeL2Output(bytes32,uint256,bytes32,uint256) (src/L1/L2OutputOracle.sol#168-215)\n\tBut does not have a function to withdraw the ether\n",
    "type": "function",
    "name": "proposeL2Output",
    "start": 7598,
    "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#662-721)\n\t- FaultDisputeGame._findTraceAncestor(Position,uint256,bool) (src/dispute/FaultDisputeGame.sol#635-653)\n\t- FaultDisputeGame.claimData (src/dispute/FaultDisputeGame.sol#66)\n\t- FaultDisputeGame.claimDataLen() (src/dispute/FaultDisputeGame.sol#510-512)\n\t- FaultDisputeGame.initialize() (src/dispute/FaultDisputeGame.sol#454-507)\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-428)\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#662-721)\n\t- FaultDisputeGame._findTraceAncestor(Position,uint256,bool) (src/dispute/FaultDisputeGame.sol#635-653)\n\t- FaultDisputeGame.claimData (src/dispute/FaultDisputeGame.sol#66)\n\t- FaultDisputeGame.claimDataLen() (src/dispute/FaultDisputeGame.sol#510-512)\n\t- FaultDisputeGame.initialize() (src/dispute/FaultDisputeGame.sol#454-507)\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-428)\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#662-721)\n\t- FaultDisputeGame._findTraceAncestor(Position,uint256,bool) (src/dispute/FaultDisputeGame.sol#635-653)\n\t- FaultDisputeGame.claimData (src/dispute/FaultDisputeGame.sol#66)\n\t- FaultDisputeGame.claimDataLen() (src/dispute/FaultDisputeGame.sol#510-512)\n\t- FaultDisputeGame.initialize() (src/dispute/FaultDisputeGame.sol#454-507)\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-428)\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": "138bfe0b87067edda58ea1bb24d88b46c26dd0da82a6818486cf28b4cb185d01",
    "impact": "Medium",
    "confidence": "Medium",
    "check": "tx-origin",
    "description": "CrossDomainMessenger.relayMessage(uint256,address,address,uint256,uint256,bytes) (src/universal/CrossDomainMessenger.sol#211-309) uses tx.origin for authorization: tx.origin == Constants.ESTIMATION_ADDRESS (src/universal/CrossDomainMessenger.sol#279)\n",
    "type": "function",
    "name": "relayMessage",
    "start": 10427,
    "length": 5066,
    "filename_relative": "src/universal/CrossDomainMessenger.sol"
  },
  {
    "id": "138bfe0b87067edda58ea1bb24d88b46c26dd0da82a6818486cf28b4cb185d01",
    "impact": "Medium",
    "confidence": "Medium",
    "check": "tx-origin",
    "description": "CrossDomainMessenger.relayMessage(uint256,address,address,uint256,uint256,bytes) (src/universal/CrossDomainMessenger.sol#211-309) uses tx.origin for authorization: tx.origin == Constants.ESTIMATION_ADDRESS (src/universal/CrossDomainMessenger.sol#279)\n",
    "type": "node",
    "name": "tx.origin == Constants.ESTIMATION_ADDRESS",
    "start": 14024,
    "length": 41,
    "filename_relative": "src/universal/CrossDomainMessenger.sol"
  },
  {
    "id": "9499bea1e26f68282279d9bf87f2ba9c95d500ba55be2f97dd49060d65abc6e7",
    "impact": "Medium",
    "confidence": "Medium",
    "check": "tx-origin",
    "description": "OptimismPortal.finalizeWithdrawalTransaction(Types.WithdrawalTransaction) (src/L1/OptimismPortal.sol#266-349) uses tx.origin for authorization: success == false && tx.origin == Constants.ESTIMATION_ADDRESS (src/L1/OptimismPortal.sol#346)\n",
    "type": "function",
    "name": "finalizeWithdrawalTransaction",
    "start": 12883,
    "length": 4841,
    "filename_relative": "src/L1/OptimismPortal.sol"
  },
  {
    "id": "9499bea1e26f68282279d9bf87f2ba9c95d500ba55be2f97dd49060d65abc6e7",
    "impact": "Medium",
    "confidence": "Medium",
    "check": "tx-origin",
    "description": "OptimismPortal.finalizeWithdrawalTransaction(Types.WithdrawalTransaction) (src/L1/OptimismPortal.sol#266-349) uses tx.origin for authorization: success == false && tx.origin == Constants.ESTIMATION_ADDRESS (src/L1/OptimismPortal.sol#346)\n",
    "type": "node",
    "name": "success == false && tx.origin == Constants.ESTIMATION_ADDRESS",
    "start": 17587,
    "length": 61,
    "filename_relative": "src/L1/OptimismPortal.sol"
  },
  {
    "id": "f7b7d4d0074e80e507ea26652acb709faeec1b04e7710e3d561444e6052229eb",
    "impact": "Medium",
    "confidence": "Medium",
    "check": "tx-origin",
    "description": "CrossDomainMessenger.relayMessage(uint256,address,address,uint256,uint256,bytes) (src/universal/CrossDomainMessenger.sol#211-309) uses tx.origin for authorization: tx.origin == Constants.ESTIMATION_ADDRESS (src/universal/CrossDomainMessenger.sol#305)\n",
    "type": "function",
    "name": "relayMessage",
    "start": 10427,
    "length": 5066,
    "filename_relative": "src/universal/CrossDomainMessenger.sol"
  },
  {
    "id": "f7b7d4d0074e80e507ea26652acb709faeec1b04e7710e3d561444e6052229eb",
    "impact": "Medium",
    "confidence": "Medium",
    "check": "tx-origin",
    "description": "CrossDomainMessenger.relayMessage(uint256,address,address,uint256,uint256,bytes) (src/universal/CrossDomainMessenger.sol#211-309) uses tx.origin for authorization: tx.origin == Constants.ESTIMATION_ADDRESS (src/universal/CrossDomainMessenger.sol#305)\n",
    "type": "node",
    "name": "tx.origin == Constants.ESTIMATION_ADDRESS",
    "start": 15346,
    "length": 41,
    "filename_relative": "src/universal/CrossDomainMessenger.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#408) is a local variable never initialized\n",
    "type": "variable",
    "name": "stateMatrix",
    "start": 18772,
    "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#680) is a local variable never initialized\n",
    "type": "variable",
    "name": "currentDepth",
    "start": 32115,
    "length": 20,
    "filename_relative": "src/dispute/FaultDisputeGame.sol"
  },
  {
    "id": "251668d2d92d4034a249cc32c68668cf824fe41d8b21c9a3ead976e6c03bdaf4",
    "impact": "Medium",
    "confidence": "High",
    "check": "write-after-write",
    "description": "OptimismPortal.l2Sender (src/L1/OptimismPortal.sol#53) is written in both\n\tl2Sender = _tx.sender (src/L1/OptimismPortal.sol#325)\n\tl2Sender = Constants.DEFAULT_L2_SENDER (src/L1/OptimismPortal.sol#337)\n",
    "type": "variable",
    "name": "l2Sender",
    "start": 2603,
    "length": 23,
    "filename_relative": "src/L1/OptimismPortal.sol"
  },
  {
    "id": "251668d2d92d4034a249cc32c68668cf824fe41d8b21c9a3ead976e6c03bdaf4",
    "impact": "Medium",
    "confidence": "High",
    "check": "write-after-write",
    "description": "OptimismPortal.l2Sender (src/L1/OptimismPortal.sol#53) is written in both\n\tl2Sender = _tx.sender (src/L1/OptimismPortal.sol#325)\n\tl2Sender = Constants.DEFAULT_L2_SENDER (src/L1/OptimismPortal.sol#337)\n",
    "type": "node",
    "name": "l2Sender = _tx.sender",
    "start": 16288,
    "length": 21,
    "filename_relative": "src/L1/OptimismPortal.sol"
  },
  {
    "id": "251668d2d92d4034a249cc32c68668cf824fe41d8b21c9a3ead976e6c03bdaf4",
    "impact": "Medium",
    "confidence": "High",
    "check": "write-after-write",
    "description": "OptimismPortal.l2Sender (src/L1/OptimismPortal.sol#53) is written in both\n\tl2Sender = _tx.sender (src/L1/OptimismPortal.sol#325)\n\tl2Sender = Constants.DEFAULT_L2_SENDER (src/L1/OptimismPortal.sol#337)\n",
    "type": "node",
    "name": "l2Sender = Constants.DEFAULT_L2_SENDER",
    "start": 17082,
    "length": 38,
    "filename_relative": "src/L1/OptimismPortal.sol"
  },
  {
    "id": "9ad67b006fc175893dd26d35a020a52dd8524709d87cca61212ee0e147eb992b",
    "impact": "Medium",
    "confidence": "High",
    "check": "write-after-write",
    "description": "CrossDomainMessenger.xDomainMsgSender (src/universal/CrossDomainMessenger.sol#129) is written in both\n\txDomainMsgSender = _sender (src/universal/CrossDomainMessenger.sol#286)\n\txDomainMsgSender = Constants.DEFAULT_L2_SENDER (src/universal/CrossDomainMessenger.sol#288)\n",
    "type": "variable",
    "name": "xDomainMsgSender",
    "start": 5784,
    "length": 33,
    "filename_relative": "src/universal/CrossDomainMessenger.sol"
  },
  {
    "id": "9ad67b006fc175893dd26d35a020a52dd8524709d87cca61212ee0e147eb992b",
    "impact": "Medium",
    "confidence": "High",
    "check": "write-after-write",
    "description": "CrossDomainMessenger.xDomainMsgSender (src/universal/CrossDomainMessenger.sol#129) is written in both\n\txDomainMsgSender = _sender (src/universal/CrossDomainMessenger.sol#286)\n\txDomainMsgSender = Constants.DEFAULT_L2_SENDER (src/universal/CrossDomainMessenger.sol#288)\n",
    "type": "node",
    "name": "xDomainMsgSender = _sender",
    "start": 14196,
    "length": 26,
    "filename_relative": "src/universal/CrossDomainMessenger.sol"
  },
  {
    "id": "9ad67b006fc175893dd26d35a020a52dd8524709d87cca61212ee0e147eb992b",
    "impact": "Medium",
    "confidence": "High",
    "check": "write-after-write",
    "description": "CrossDomainMessenger.xDomainMsgSender (src/universal/CrossDomainMessenger.sol#129) is written in both\n\txDomainMsgSender = _sender (src/universal/CrossDomainMessenger.sol#286)\n\txDomainMsgSender = Constants.DEFAULT_L2_SENDER (src/universal/CrossDomainMessenger.sol#288)\n",
    "type": "node",
    "name": "xDomainMsgSender = Constants.DEFAULT_L2_SENDER",
    "start": 14329,
    "length": 46,
    "filename_relative": "src/universal/CrossDomainMessenger.sol"
  }
]
