code4rena-2022-08-nounsdao-g15
[G‑15] ++i costs less gas than i++, especially when it’s used in for-loops (—i/i— too)
Summary
i++, i-- 보다 ++i, --i 가 gas 효율적이다. 특히 반복문에서 주의해야 한다.
Keyword
gas optimization
Vulnerability
File: contracts/governance/NounsDAOLogicV1.sol
216: proposalCount++;
281: for (uint256 i = 0; i < proposal.targets.length; i++) {
319: for (uint256 i = 0; i < proposal.targets.length; i++) {
346: for (uint256 i = 0; i < proposal.targets.length; i++) {
371: for (uint256 i = 0; i < proposal.targets.length; i++) {File: contracts/governance/NounsDAOLogicV2.sol
226: proposalCount++;
292: for (uint256 i = 0; i < proposal.targets.length; i++) {
330: for (uint256 i = 0; i < proposal.targets.length; i++) {
357: for (uint256 i = 0; i < proposal.targets.length; i++) {
382: for (uint256 i = 0; i < proposal.targets.length; i++) {i++, i-- 보다 ++i, --i 가 gas 효율적이다. 특히 반복문에서 주의해야 한다.
Impact
가스 낭비적이다.
Mitigation
가능한 경우, i++, i-- 대신 ++i, --i를 이용한다.
tags: bughunting, nouns dao, smart contract, solidity, gas optimization, severity gas