Function: deployCompetitionBeaconProxy(address logic, bytes payload)
This deploys a new competition beacon proxy.
Inputs
logic
Control: Determined by the caller of the function.
Constraints: Must be a valid contract address.
Impact: Specifies the logic contract to be used by the beacon proxy.
payload
Control: Determined by the caller of the function.
Constraints: Can be any valid byte array.
Impact: Used for initializing the beacon proxy.
Branches and code coverage
Intended branches
Check if a competition beacon is already set and create one if not.
Negative behavior
Revert if the competition beacon is already set.
Revert on failure to create the proxy instance (code size equal with zero).