Commit 88586b75 authored by Mark Tyneway's avatar Mark Tyneway Committed by GitHub

contracts-bedrock, ci: remove slither (#9319)

* contracts-bedrock, ci: remove slither

Remove the committed in `slither-report.json` since it is not being used
as part of code review. Also remove running it as part of CI. We can
choose to add it back when we have the time for somebody to own making
it a first class tool, but since we haven't triaged the database yet
it only adds noise to PRs by adding extra diff and extra overhead by
forcing a regeneration of the report.

It hasn't found any issues in our code and our other checks are much
better at finding issues in the code.

Leaving the slither commands in the `package.json` for now but if we
do not commit to using slither in a way that is very helpful for us
in 6 months or so, then we should just remove the commands as well.

Maybe we can adopt a way of using slither where it is used before
doing releases of contracts or before going to audit. Having the diff
as part of code review is not super helpful for code reviewers.
It just adds noise in the current form.

* Kick build

---------
Co-authored-by: default avatarMatthew Slipper <me@matthewslipper.com>
parent 06d06428
......@@ -478,19 +478,6 @@ jobs:
exit 1
fi
contracts-bedrock-slither:
docker:
- image: <<pipeline.parameters.ci_builder_image>>
resource_class: medium
steps:
- checkout
- check-changed:
patterns: contracts-bedrock
- run:
name: slither
command: pnpm slither:check
working_directory: packages/contracts-bedrock
contracts-bedrock-validate-spaces:
docker:
- image: <<pipeline.parameters.ci_builder_image>>
......@@ -1382,7 +1369,6 @@ workflows:
- contracts-bedrock-checks:
requires:
- pnpm-monorepo
- contracts-bedrock-slither
- contracts-bedrock-validate-spaces:
requires:
- pnpm-monorepo
......
[
{
"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"
}
]
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment