@@ -55,6 +55,9 @@ abstract contract GovernorStorage is Governor {
5555 function queue (uint256 proposalId ) public virtual {
5656 // here, using storage is more efficient than memory
5757 ProposalDetails storage details = _proposalDetails[proposalId];
58+ if (details.descriptionHash == 0 ) {
59+ revert GovernorNonexistentProposal (proposalId);
60+ }
5861 queue (details.targets, details.values, details.calldatas, details.descriptionHash);
5962 }
6063
@@ -64,6 +67,9 @@ abstract contract GovernorStorage is Governor {
6467 function execute (uint256 proposalId ) public payable virtual {
6568 // here, using storage is more efficient than memory
6669 ProposalDetails storage details = _proposalDetails[proposalId];
70+ if (details.descriptionHash == 0 ) {
71+ revert GovernorNonexistentProposal (proposalId);
72+ }
6773 execute (details.targets, details.values, details.calldatas, details.descriptionHash);
6874 }
6975
@@ -73,6 +79,9 @@ abstract contract GovernorStorage is Governor {
7379 function cancel (uint256 proposalId ) public virtual {
7480 // here, using storage is more efficient than memory
7581 ProposalDetails storage details = _proposalDetails[proposalId];
82+ if (details.descriptionHash == 0 ) {
83+ revert GovernorNonexistentProposal (proposalId);
84+ }
7685 cancel (details.targets, details.values, details.calldatas, details.descriptionHash);
7786 }
7887
0 commit comments