The updateDAOMembership() function allows the protocol to shortening the list of dao.tiers for PUBLIC or PRIVATE DAOs. However, if a tier with existing minted ERC1155 tokens is removed, holders of these tokens lose their voting power, as the tiers() function no longer provides vote power for the removed tier.
When updateDAOMembership() removes a tier with existing minted tokens. The tiers() function will not return the removed tier, the holders of that tier losing voting power. Without a migration mechanism, these token holders are left without a way to transfer their voting rights to a valid tier.
Example scenario:
A tier (e.g., tier 3) with minted ERC1155 tokens is removed via updateDAOMembership().
tiers() no longer provides voting power for tier 3, leaving existing holders of tier 3 tokens without voting rights.
This results in an unequal voting distribution.
Users lose voting power if remove a tier with existing holders.
vscode
Option 1: Ensure updateDAOMembership() cannot remove any tier with existing minted tokens.
Option 2: Introduce a migration feature that allows holders of a removed tier to migrate their tokens to a new valid 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.