The total tiers amount of DAO members may never be reached if some members' tokens are burned.
When a DAO membership is created, the amount of members in each tier is configured.
MembershipDAOStructs.sol#L31-L36:
MembershipFactory.sol#L85-L88:
When a user joins a DAO membership, protocol validates if the minted
token amount less than the tier amount, and minted
is increased by 1 if not.
The minted DAO membership tokens can also be burned by admin through callExternalContract().
MembershipERC1155.sol#L91-L93:
However, when these functions are called, the tier's minted
is not decreased accordingly, as a result, the total tiers amount of members may never be reached. For example, tier 5's amount
is 5 and minted
is also 5, when 2 tokens are burned, the actual amount of tier members becomes 3 but new members won't be able to join as tier amount
is no larger than minted
.
(Please note this issue may be similar to 7.3.4
in previous audit but they are different issues)
New members cannot join a DAO even if there are not enough memebers, and the DAO may not able to execute proposals due to insufficient quorum votes.
Manual Review
It is recommended to decrease tier minted
accordingly when DAO tokens are burned (if it is not when upgrading tier).
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.