The _lockAmount is taken in constructor and set to the contract lockAmount. The comment says it is suppose to be 20 USDC. But the constructor never check if this value is indeed 20e6 .
The deployer could carelessly deploy a lockAmount value that is different than the protocol expected value.
Likelihood:
When the deployer deploy the contract with _lockAmount = 10. This is also acceptable by the constructor.
Impact:
The protocol will receive less collateral per minted NFT than expected.
The deployer could carelessly deploy a nftdealer contract with no lockAmount.
We can just assign the 20e6 value to lockAmount in the smart contract and remove its assignment from the constructor.
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.
The contest is complete and the rewards are being distributed.