The LoveToken.sol constructor takes airdropVault and stakingVault as arguments. They are initialized in Airdrop.sol, which, needs an implementation of the ILoveToken interface.
The initialization of Vault.sol's vaults (airdropVault and stakingVault) relies on LoveToken.sol being deployed and providing an implementation of the ILoveToken interface. Therefore, LoveToken.sol needs to be deployed before Vault.sol can successfully initialize its vaults.
For deployment to mainnet or a testnet other than a local environment, the circular dependencies will prevent deployment of LoveToken.sol.
Remix + manual review
Refactoring the contracts to remove circular dependencies or redesigning the deployment process to handle dependencies more efficiently.
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.