Platform: Code4rena
Start Date: 22/08/2022
Pot Size: $50,000 USDC
Total HM: 4
Participants: 160
Period: 5 days
Judge: gzeon
Total Solo HM: 2
Id: 155
League: ETH
Rank: 78/160
Findings: 2
Award: $52.10
๐ Selected for report: 0
๐ Solo Findings: 0
๐ Selected for report: IllIllI
Also found by: 0bi, 0x040, 0x1337, 0x1f8b, 0xDjango, 0xNazgul, 0xNineDec, 0xRajeev, 0xSky, 0xSmartContract, 0xbepresent, 0xkatana, 0xmatt, 8olidity, Aymen0909, Bjorn_bug, Bnke0x0, CertoraInc, Ch_301, Chom, CodingNameKiki, Deivitto, DevABDee, DimitarDimitrov, Dravee, ElKu, Funen, GalloDaSballo, GimelSec, Guardian, Haruxe, JC, JansenC, Jeiwan, JohnSmith, KIntern_NA, Lambda, LeoS, Noah3o6, Olivierdem, R2, RaymondFam, Respx, ReyAdmirado, Rohan16, Rolezn, Ruhum, Saintcode_, Sm4rty, SooYa, Soosh, TomJ, Tomo, Trabajo_de_mates, Waze, _Adam, __141345__, ajtra, android69, asutorufos, auditor0517, berndartmueller, bobirichman, brgltd, c3phas, cRat1st0s, carlitox477, catchup, cccz, csanuragjain, d3e4, delfin454000, dipp, djxploit, durianSausage, erictee, exd0tpy, fatherOfBlocks, gogo, hyh, ladboy233, lukris02, mics, mrpathfindr, natzuu, oyc_109, p_crypt0, pashov, pauliax, pfapostol, prasantgupta52, rajatbeladiya, rbserver, ret2basic, rfa, robee, rokinot, rvierdiiev, sach1r0, saian, seyni, shenwilly, sikorico, simon135, sryysryy, sseefried, throttle, tnevler, tonisives, wagmi, xiaoming90, yixxas, z3s, zkhorse, zzzitron
35.4386 USDC - $35.44
-> EVENT IS MISSING INDEXED FIELDS Each event should use three indexed fields if there are three or more fields.
https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOInterfaces.sol#:~:text=event%20ProposalCreated(,)%3B https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOInterfaces.sol#:~:text=event%20ProposalCreatedWithRequirements(,)%3B https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOInterfaces.sol#:~:text=event%20VoteCast(address%20indexed%20voter%2C%20uint256%20proposalId%2C%20uint8%20support%2C%20uint256%20votes%2C%20string%20reason)%3B https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/base/ERC721Checkpointable.sol#:~:text=event%20DelegateVotesChanged(address%20indexed%20delegate%2C%20uint256%20previousBalance%2C%20uint256%20newBalance)%3B
๐ Selected for report: IllIllI
Also found by: 0x040, 0x1f8b, 0xDjango, 0xNazgul, 0xNineDec, 0xSmartContract, 0xbepresent, 0xc0ffEE, 0xkatana, 2997ms, ACai, Amithuddar, Aymen0909, Ben, BipinSah, Bjorn_bug, Bnke0x0, CertoraInc, Ch_301, Chom, CodingNameKiki, Deivitto, DevABDee, DimitarDimitrov, Diraco, Dravee, ElKu, EthLedger, Fitraldys, Funen, GalloDaSballo, GimelSec, Guardian, IgnacioB, JC, JohnSmith, Junnon, KIntern_NA, Lambda, LeoS, Noah3o6, Olivierdem, Polandia94, R2, Randyyy, RaymondFam, Respx, ReyAdmirado, Rohan16, RoiEvenHaim, Rolezn, Ruhum, SaharAP, Saintcode_, SerMyVillage, Shishigami, Sm4rty, SooYa, TomJ, Tomio, Tomo, Waze, Yiko, _Adam, __141345__, a12jmx, ajtra, ak1, bobirichman, brgltd, bulej93, c3phas, cRat1st0s, carlitox477, catchup, ch0bu, d3e4, delfin454000, djxploit, durianSausage, erictee, exolorkistis, fatherOfBlocks, francoHacker, gogo, hyh, ignacio, jag, joestakey, karanctf, ladboy233, lucacez, lukris02, m_Rassska, martin, medikko, mics, mrpathfindr, natzuu, newfork01, oyc_109, pauliax, peritoflores, pfapostol, prasantgupta52, rbserver, ret2basic, rfa, robee, rokinot, rotcivegaf, rvierdiiev, sach1r0, saian, samruna, seyni, shark, shr1ftyy, sikorico, simon135, sryysryy, tay054, tnevler, wagmi, zishansami
16.6568 USDC - $16.66
-> REQUIRE()/REVERT() STRINGS LONGER THAN 32 BYTES COST EXTRA GAS
USE CUSTOM ERRORS RATHER THAN REVERT()/REQUIRE() STRINGS TO SAVE GAS
https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#:~:text=require(address(timelock)%20%3D%3D%20address(0)%2C%20%27NounsDAO%3A%3Ainitialize%3A%20can%20only%20initialize%20once%27)%3B https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#:~:text=require(msg.sender%20%3D%3D%20admin%2C%20%27NounsDAO%3A%3Ainitialize%3A%20admin%20only%27)%3B https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#:~:text=require(timelock_%20!%3D%20address(0)%2C%20%27NounsDAO%3A%3Ainitialize%3A%20invalid%20timelock%20address%27)%3B https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#:~:text=require(nouns_%20!%3D%20address(0)%2C%20%27NounsDAO%3A%3Ainitialize%3A%20invalid%20nouns%20address%27)%3B https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#:~:text=proposalThresholdBPS%2C%20temp.totalSupply)%3B-,require(,%27NounsDAO%3A%3Apropose%3A%20proposer%20votes%20below%20proposal%20threshold%27,-)%3B https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#:~:text=below%20proposal%20threshold%27-,)%3B,)%3B,-require(targets. https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#:~:text=require(targets.length%20!%3D%200%2C%20%27NounsDAO%3A%3Apropose%3A%20must%20provide%20actions%27)%3B https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#:~:text=require(targets.length%20%3C%3D%20proposalMaxOperations%2C%20%27NounsDAO%3A%3Apropose%3A%20too%20many%20actions%27)%3B https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#:~:text=(temp.latestProposalId)%3B-,require(,)%3B,-require( https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#:~:text=already%20active%20proposal%27-,)%3B,)%3B,-%7D https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#:~:text=queue(uint256%20proposalId)%20external%20%7B-,require(,)%3B,-Proposal%20storage%20proposal%20%3D%20_proposals%5BproposalId%5D%3B https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#:~:text=)%20internal%20%7B-,require(,%27NounsDAO%3A%3AqueueOrRevertInternal%3A%20identical%20proposal%20action%20already%20queued%20at%20eta%27,-)%3B https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#:~:text=execute(uint256%20proposalId)%20external%20%7B-,require(,NounsDAO%3A%3Aexecute%3A%20proposal%20can%20only%20be%20executed%20if%20it%20is%20queued%27,-)%3B https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#:~:text=require(state(proposalId)%20!%3D%20ProposalState.Executed%2C%20%27NounsDAO%3A%3Acancel%3A%20cannot%20cancel%20executed%20proposal%27)%3B https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#:~:text=require(state(proposalId)%20!%3D%20ProposalState.Executed%2C%20%27NounsDAO%3A%3Aveto%3A%20cannot%20veto%20executed%20proposal%27)%3B https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#:~:text=require(proposalCount%20%3E%3D%20proposalId%2C%20%27NounsDAO%3A%3Astate%3A%20invalid%20proposal%20id%27)%3B https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#L568:~:text=require(signatory%20!%3D%20address(0)%2C%20%27NounsDAO%3A%3AcastVoteBySig%3A%20invalid%20signature%27)%3B https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#L568:~:text=require(state(proposalId)%20%3D%3D%20ProposalState.Active%2C%20%27NounsDAO%3A%3AcastVoteInternal%3A%20voting%20is%20closed%27)%3B https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#L568:~:text=require(support%20%3C%3D%202%2C%20%27NounsDAO%3A%3AcastVoteInternal%3A%20invalid%20vote%20type%27)%3B https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#L568:~:text=require(receipt.hasVoted%20%3D%3D%20false%2C%20%27NounsDAO%3A%3AcastVoteInternal%3A%20voter%20already%20voted%27)%3B https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#L568:~:text=require(msg.sender%20%3D%3D%20admin%2C%20%27NounsDAO%3A%3A_setVotingDelay%3A%20admin%20only%27)%3B https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#L568:~:text=require(msg.sender%20%3D%3D%20admin%2C%20%27NounsDAO%3A%3A_setVotingPeriod%3A%20admin%20only%27)%3B https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#L568:~:text=require(msg.sender%20%3D%3D%20admin%2C%20%27NounsDAO%3A%3A_setProposalThresholdBPS%3A%20admin%20only%27)%3B https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#L568:~:text=require(msg.sender%20%3D%3D%20admin%2C%20%27NounsDAO%3A%3A_setMinQuorumVotesBPS%3A%20admin%20only%27)%3B https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#L568:~:text=quorum%20votes%20bps%27-,)%3B,%27NounsDAO%3A%3A_setMinQuorumVotesBPS%3A%20min%20quorum%20votes%20bps%20greater%20than%20max%27,-)%3B https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#L687:~:text=require(msg.sender%20%3D%3D%20admin%2C%20%27NounsDAO%3A%3A_setMaxQuorumVotesBPS%3A%20admin%20only%27)%3B https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#L687:~:text=max%20quorum%20votes%20bps%27-,)%3B,)%3B,-uint16%20oldMaxQuorumVotesBPS%20%3D%20params https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#L687:~:text=require(msg.sender%20%3D%3D%20admin%2C%20%27NounsDAO%3A%3A_setQuorumCoefficient%3A%20admin%20only%27)%3B https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#L750:~:text=require(msg.sender%20%3D%3D%20vetoer%2C%20%27NounsDAO%3A%3A_burnVetoPower%3A%20vetoer%20only%27)%3B https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOProxy.sol#:~:text=require(implementation_%20!%3D%20address(0)%2C%20%27NounsDAOProxy%3A%3A_setImplementation%3A%20invalid%20implementation%20address%27)%3B https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/base/ERC721Checkpointable.sol#:~:text=require(signatory%20!%3D,signature%20expired%27)%3B https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/base/ERC721Checkpointable.sol#:~:text=require(blockNumber%20%3C%20block.number%2C%20%27ERC721Checkpointable%3A%3AgetPriorVotes%3A%20not%20yet%20determined%27)%3B https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/base/ERC721Enumerable.sol#:~:text=require(index%20%3C%20ERC721.balanceOf(owner)%2C%20%27ERC721Enumerable%3A%20owner%20index%20out%20of%20bounds%27)%3B https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/base/ERC721Enumerable.sol#:~:text=require(index%20%3C%20ERC721Enumerable.totalSupply()%2C%20%27ERC721Enumerable%3A%20global%20index%20out%20of%20bounds%27)%3B
->SPLITTING REQUIRE() STATEMENTS THAT USE && SAVES GAS
https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#:~:text=nouns%20address%27)%3B-,require(,%27NounsDAO%3A%3Ainitialize%3A%20invalid%20voting%20period%27,-)%3B https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#:~:text=invalid%20voting%20period%27-,)%3B,%27NounsDAO%3A%3Ainitialize%3A%20invalid%20voting%20delay%27,-)%3B https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#:~:text=invalid%20voting%20delay%27-,)%3B,%27NounsDAO%3A%3Ainitialize%3A%20invalid%20proposal%20threshold%20bps%27,-)%3B https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#:~:text=below%20proposal%20threshold%27-,)%3B,)%3B,-require(targets. https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#L568:~:text=_setVotingDelay%3A%20admin%20only%27)%3B-,require(,)%3B,-uint256%20oldVotingDelay%20%3D%20votingDelay https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#L568:~:text=_setVotingPeriod%3A%20admin%20only%27)%3B-,require(,)%3B,-uint256%20oldVotingPeriod%20%3D%20votingPeriod https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#L568:~:text=_setProposalThresholdBPS%3A%20admin%20only%27)%3B-,require(,)%3B,-uint256%20oldProposalThresholdBPS%20%3D%20proposalThresholdBPS https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#L568:~:text=.number)%3B-,require(,%27NounsDAO%3A%3A_setMinQuorumVotesBPS%3A%20invalid%20min%20quorum%20votes%20bps%27,-)%3B https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#L750:~:text=require(msg.sender%20%3D%3D%20pendingAdmin%20%26%26%20msg.sender%20!%3D%20address(0)%2C%20%27NounsDAO%3A%3A_acceptAdmin%3A%20pending%20admin%20only%27)%3B
-> ++i costs less gas compared to i++ or i += 1 (Also --i costs less gas compared to i--- or i -= 1)
https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#:~:text=targets.length%3B-,i%2B%2B)%20%7B,-queueOrRevertInternal( https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#:~:text=targets.length%3B-,i%2B%2B)%20%7B,-timelock.executeTransaction https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#:~:text=vetoed%20%3D%20true%3B-,for%20(uint256%20i%20%3D%200%3B%20i%20%3C%20proposal.targets.length%3B%20i%2B%2B)%20%7B,-timelock.cancelTransaction( https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV1.sol#:~:text=startBlock%20%2B%20votingPeriod%3B-,proposalCount%2B%2B%3B,-Proposal%20storage%20newProposal https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/base/ERC721Checkpointable.sol#:~:text=(nonce%20%3D%3D-,nonces%5Bsignatory%5D%2B%2B,-%2C%20%27ERC721Checkpointable%3A%3AdelegateBySig
-> USAGE OF UINTS/INTS SMALLER THAN 32 BYTES (256 BITS) INCURS OVERHEAD When using elements that are smaller than 32 bytes, your contractโs gas usage may be higher. This is because the EVM operates on 32 bytes at a time. Therefore, if the element is smaller than that, the EVM must use more operations in order to reduce the size of the element from 32 bytes to the desired size.
https://github.com/code-423n4/2022-08-nounsdao/blob/45411325ec14c6d747b999a40367d3c5109b5a89/contracts/governance/NounsDAOLogicV2.sol#L520 https://github.com/code-423n4/2022-08-nounsdao/blob/45411325ec14c6d747b999a40367d3c5109b5a89/contracts/governance/NounsDAOLogicV2.sol#L535 https://github.com/code-423n4/2022-08-nounsdao/blob/45411325ec14c6d747b999a40367d3c5109b5a89/contracts/governance/NounsDAOLogicV2.sol#L554 https://github.com/code-423n4/2022-08-nounsdao/blob/45411325ec14c6d747b999a40367d3c5109b5a89/contracts/governance/NounsDAOLogicV2.sol#L566 https://github.com/code-423n4/2022-08-nounsdao/blob/45411325ec14c6d747b999a40367d3c5109b5a89/contracts/governance/NounsDAOLogicV2.sol#L567 https://github.com/code-423n4/2022-08-nounsdao/blob/45411325ec14c6d747b999a40367d3c5109b5a89/contracts/governance/NounsDAOLogicV2.sol#L591 https://github.com/code-423n4/2022-08-nounsdao/blob/45411325ec14c6d747b999a40367d3c5109b5a89/contracts/governance/NounsDAOLogicV2.sol#L687 https://github.com/code-423n4/2022-08-nounsdao/blob/45411325ec14c6d747b999a40367d3c5109b5a89/contracts/governance/NounsDAOLogicV2.sol#L749 https://github.com/code-423n4/2022-08-nounsdao/blob/45411325ec14c6d747b999a40367d3c5109b5a89/contracts/governance/NounsDAOLogicV2.sol#L750 https://github.com/code-423n4/2022-08-nounsdao/blob/45411325ec14c6d747b999a40367d3c5109b5a89/contracts/governance/NounsDAOLogicV2.sol#L1024 https://github.com/code-423n4/2022-08-nounsdao/blob/45411325ec14c6d747b999a40367d3c5109b5a89/contracts/governance/NounsDAOLogicV2.sol#L1027 https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOInterfaces.sol#:~:text=uint256%20proposalId%2C-,uint8,-support%2C%20uint256 https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOInterfaces.sol#:~:text=event%20MinQuorumVotesBPSSet(-,uint16,-oldMinQuorumVotesBPS%2C%20uint16 https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOInterfaces.sol#:~:text=uint16%20oldMinQuorumVotesBPS%2C-,uint16,-newMinQuorumVotesBPS)%3B https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOInterfaces.sol#:~:text=event%20MaxQuorumVotesBPSSet(-,uint16,-oldMaxQuorumVotesBPS%2C%20uint16 https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOInterfaces.sol#:~:text=uint16%20oldMaxQuorumVotesBPS%2C-,uint16,-newMaxQuorumVotesBPS)%3B https://github.com/code-423n4/2022-08-nounsdao/blob/45411325ec14c6d747b999a40367d3c5109b5a89/contracts/governance/NounsDAOInterfaces.sol#L218 https://github.com/code-423n4/2022-08-nounsdao/blob/45411325ec14c6d747b999a40367d3c5109b5a89/contracts/governance/NounsDAOInterfaces.sol#L322 https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOInterfaces.sol#L322:~:text=vote%20to%20succeed.-,uint16,-minQuorumVotesBPS%3B https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOInterfaces.sol#L322:~:text=vote%20to%20succeed.-,uint16,-maxQuorumVotesBPS%3B https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/base/ERC721Checkpointable.sol#:~:text=governance%20platforms%20easier-,uint8,-public%20constant%20decimals https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/base/ERC721Checkpointable.sol#:~:text=uint256%20expiry%2C-,uint8%20v%2C,-bytes32%20r%2C
->IT COSTS MORE GAS TO INITIALIZE NON-CONSTANT/NON-IMMUTABLE VARIABLES TO ZERO THAN TO LET THE DEFAULT OF ZERO BE APPLIED
https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#:~:text=timelock.delay()%3B-,for%20(uint256%20i%20%3D%200%3B%20i%20%3C%20proposal.targets.length%3B%20i%2B%2B)%20%7B,-queueOrRevertInternal( https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#:~:text=%3D%20true%3B-,for%20(uint256%20i%20%3D%200%3B%20i%20%3C%20proposal.targets.length%3B%20i%2B%2B)%20%7B,-timelock.executeTransaction https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#:~:text=canceled%20%3D%20true%3B-,for%20(uint256%20i%20%3D%200%3B%20i%20%3C%20proposal.targets.length%3B%20i%2B%2B)%20%7B,-timelock.cancelTransaction( https://github.com/code-423n4/2022-08-nounsdao/blob/main/contracts/governance/NounsDAOLogicV2.sol#:~:text=vetoed%20%3D%20true%3B-,for%20(uint256%20i%20%3D%200%3B%20i%20%3C%20proposal.targets.length%3B%20i%2B%2B)%20%7B,-timelock.cancelTransaction(