Closed sherlock-admin3 closed 3 months ago
Will address
Borderline low/medium, tending towards low for this issue because:
Using Solidity versions that support EVM opcodes that don't work on networks on which the protocol is deployed is not a valid issue because one can manage compilation flags to compile for past EVM versions on newer Solidity versions.
Refer Sherlock docs rule 24
_karanel
medium
Deployment to several chains would fail due to incorrect Solidity version
Summary
The TITLES protocol uses Solidity version
0.8.24
which would lead to deployment failure on Base, Zora, Blast, zkSync and DegenVulnerability Detail
Solidity
v0.8.20
introduced a new opcodePUSH0
. Meanwhile this does not cause an issue for deployment to the Ethereum network,PUSH0
opcode is not yet supported by many chains. The contract bytecode would have aPUSH0
opcode which would revert on deploymeny to all chains except Ethereum, Optimism and Arbitrum.Impact
Restricts the ability of the protocol to deploy on multiple chains.
Code Snippet
https://github.com/sherlock-audit/2024-04-titles/blob/main/wallflower-contract-v2/src/TitlesCore.sol#L2 https://github.com/sherlock-audit/2024-04-titles/blob/main/wallflower-contract-v2/src/graph/TitlesGraph.sol#L2 https://github.com/sherlock-audit/2024-04-titles/blob/main/wallflower-contract-v2/src/fees/FeeManager.sol#L2 https://github.com/sherlock-audit/2024-04-titles/blob/main/wallflower-contract-v2/src/editions/Edition.sol#L2 https://github.com/sherlock-audit/2024-04-titles/blob/main/wallflower-contract-v2/src/shared/Common.sol#L2
Tool used
Manual Review Documentation
Recommendation
Downgrade to Solidity
v0.8.19