DSCEngine should deploy its own DecentralizedStableCoin instead of accepting an address upon construction.
There is a perfect 1:1 correspondence between DSCEngine and DecentralizedStableCoin:
DSCEngine tracks a single, immutable i_dsc address.
DecentralizedStableCoin has a single owner with the power to mint() and burn() tokens.
Therefore, it is needless to deploy the DecentralizedStableCoin prior to deployment of a DSCEngine and only serves to add extra steps to the process, including migration of the owner.
Unnecessary gas/deployment UX burden.
Manual review.
Consider changing the DSCEngine constructor like this:
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.