The Tadle factory is incompatible with the ITadleInterface in one of the even emissions by deploy method.
Incompatibility with interface can lead TadleFactory to only deploy upto uint8.max = 255 contracts instead of intended uint256.max which is an astronomically large number `115792089237316195423570985008687907853269984665640564039457584007913129639935`
TadleFactory violates compatibility of ITadleFactory in an event emission that initially thought is harmless but after 255 contracts are deployed by the factory , factory will no more be able to deploy contracts at new indexes > uint8.max (i.e 255) which will lead to Denail of service for new contract deployments if index is monotonically increasing
ITadleFactory.sol
TadleFactory
There are two impacts
If Guardian is aware of this limitation , they will always try to keep _relatedContractIndex
in range 0 - 255 , which will make contract suffer of index redundancy across deployments which will not be easily distinguishable and forge the uniqueness property of _relatedContractIndex
.
If Guardian wants to keep _relatedContractIndex
unique across each deployment , they will only be able to deploy 255 contracts instead of the supposed 115792089237316195423570985008687907853269984665640564039457584007913129639935
contracts
Manual Review
Change the function signature to this to support large number of deployments
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.