In Governance contract, proposal could be marked as canceled, even if this proposal already in timelock contract now.
Function cancel() in governance contract allow mark proposal as canceled only if it has status Executed.
It means that this function could be called even if proposal has status Queued (prepared for executing in timelock contract)
It cause emiting event ProposalCanceled()
This proposal wil be marked as canceled that it is not true
Function state will start return incorrect status, which cause user confusion and they will go to create new proposal, but this proposal in timelock contract already. Proposal will be executed, but in governance contract will have status canceled.
Manual review
Do not allow cancel proposal if it has status queued or executed.
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.