The NudgeCampaignFactory does not validate the uniqueness of campaign UUIDs during deployment, potentially allowing multiple campaigns with the same identifier.
When deploying campaigns through deployCampaign and deployAndFundCampaign functions, there is no check to ensure that the provided uuid parameter is unique across all campaigns. This could lead to multiple campaigns sharing the same identifier.
While the CREATE2 deployment pattern ensures unique contract addresses due to other parameters in the salt calculation, having unique UUIDs is important for off-chain tracking and integration systems that may rely on these identifiers.
In NudgeCampaignFactory.sol:
Implement a mapping to track used UUIDs and add a validation check in campaign deployment functions:
Also, add the corresponding error definition:
