Project

One World
NFTDeFi
15,000 USDC
View results
Submission Details
Severity: low
Invalid

If a tier only has 1 amount, it will not be able to get upgraded

Summary

If there is only 1 person that can be in a tier (not the highest), then upgradeTier() cannot be used because it has to burn 2 NFTs to upgrade to 1 NFT.

Vulnerability Details

MembershipFactory.upgradeTier:

function upgradeTier(address daoMembershipAddress, uint256 fromTierIndex) external {
require(daos[daoMembershipAddress].daoType == DAOType.SPONSORED, "Upgrade not allowed.");
require(daos[daoMembershipAddress].noOfTiers >= fromTierIndex + 1, "No higher tier available.");
IMembershipERC1155(daoMembershipAddress).burn(_msgSender(), fromTierIndex, 2);
> IMembershipERC1155(daoMembershipAddress).mint(_msgSender(), fromTierIndex - 1, 1);
emit UserJoinedDAO(_msgSender(), daoMembershipAddress, fromTierIndex - 1);
}

If fromTierIndex only has 1 maximum amount to mint (checked in joinDAO()), then upgradeTier() will not work.

Impact

Functionality not used.

Tools Used

Manual Review

Recommendations

Recommend having a minimum amount of NFTs per index.

Updates

Lead Judging Commences

0xbrivan2 Lead Judge 10 months ago
Submission Judgement Published
Invalidated
Reason: Non-acceptable severity
0xbrivan2 Lead Judge 10 months ago
Submission Judgement Published
Invalidated
Reason: Non-acceptable severity

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.