Project

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

Upgrading tiers in DAO, emits wrong event for joining the DAO, instead of tier upgrade

Description

The MembershipFactory::upgradeTier() wrongfully emits an event of joining dao

emit UserJoinedDAO(_msgSender(), daoMembershipAddress, fromTierIndex - 1); // @audit the event for joining dao is emitted instead of upgrade

Take a look at this LoC, MembershipFactory.sol#L160.

This could be a serious issue when the external bots, or web2 servers watch over the events emitted by the contract but, in this case since it is only misleading, I am marking this issue as LOW.

Tools Used

Manual Review

Recommendation

Create a separate event for dao tier upgrade, and emit it when upgrading dao tier, instead of joining dao

event UserJoinedDAO(address user, address membershipNftAddress, uint256 tierIndex);
+ event DAOTierUpgraded(address user, address membershipNftAddress, uint256 fromTier, uint256 toTier);
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);
+ emit DAOTierUpgraded(_msgSender(), daoMembershipAddress, fromTierIndex, fromTierIndex - 1);
}
Updates

Lead Judging Commences

0xbrivan2 Lead Judge 9 months ago
Submission Judgement Published
Invalidated
Reason: Known issue

Support

FAQs

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