The audit found that the contract should use a concrete version of Solidity.
Vulnerability Detail
The absence of a specific version of Solidity in the contract may lead to compatibility issues and unintended behaviour due to changes in different versions of the Solidity compiler.
Using an unspecified version of Solidity increases the risk of encountering unforeseen bugs, vulnerabilities, or incompatibilities with future compiler versions.
Code Snippet
pragma solidity ^0.8.13;
Tool used
Manual Review
Recommendation
It is recommended to specify a concrete version of Solidity in the contract to ensure predictability and compatibility with the chosen compiler version. This can be achieved by explicitly specifying the Solidity version in the pragma statement at the beginning of the contract.
For example:
Informational 05 Concrete Solidity Version
Low/Info issue submitted by 1337web3
Summary
The audit found that the contract should use a concrete version of Solidity.
Vulnerability Detail
The absence of a specific version of Solidity in the contract may lead to compatibility issues and unintended behaviour due to changes in different versions of the Solidity compiler.
https://github.com/sherlock-audit/2024-05-kwenta-x-perennial-integration-update/blob/main/perennial-v2/packages/perennial-extensions/contracts/MultiInvoker.sol#L2
Impact
Using an unspecified version of Solidity increases the risk of encountering unforeseen bugs, vulnerabilities, or incompatibilities with future compiler versions.
Code Snippet
Tool used
Manual Review
Recommendation
It is recommended to specify a concrete version of Solidity in the contract to ensure predictability and compatibility with the chosen compiler version. This can be achieved by explicitly specifying the Solidity version in the pragma statement at the beginning of the contract. For example: