The contracts of the Soulmate
protocol use a wide version of Solidity
: ^0.8.23
.
The Airdrop
, LoveToken
, Soulmate
, Staking
and Vault
contracts use not specific pragma solidity version: ^0.8.23
.
Also, in the README
is said:
Solc Version: 0.8.23 < 0.9.0
But the used Solidity version in the contracts is: ^0.8.23
. At this moment the last released solidity version is 0.8.25
. But in the future when the 0.9.0
version is released, the contracts can use it which is not intended by the protocol.
Using a floating pragma ^0.8.23
statement is not recommended as code can compile to different bytecodes with different compiler versions.
Also, the Solidity pragma ^0.8.23
includes the Solidity version 0.9.0
. This conflicts with the protocol's requirement that the Solidity version be less than 0.9.0
.
Manual Review
Consider using a specific version of Solidity in your contracts instead of a wide version. Also, use latest Solidity version to get all compiler features, bugfixes and optimizations.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.