π Description
Decouple vote-weight calculation from the governor so we can swap strategies (token balance, activity, NFT, etc.) without redeploying.
β
Acceptance Criteria
- Add storage vote_weight_module: ContractAddress
- Add external function set_vote_weight_module(new_module: ContractAddress) restricted to DAO admin
- On every vote, call IVoteWeightModule.get_weight(voter, proposal_id) and use the returned u128
- If module returns zero or reverts, treat weight as zero (do not revert the tx)
π Description
Decouple vote-weight calculation from the governor so we can swap strategies (token balance, activity, NFT, etc.) without redeploying.
β Acceptance Criteria