Voting Strategy
What role does a Voting Strategy play in Allo?
While voting takes place on the Round contract, the logic for how a round handles voting should be implemented in a Voting Strategy contract that adheres to the
IVotingStrategy
interface.The interface contract provides a few methods and modifiers to help you implement a custom Voting Strategy.
A Round contract will call the
init()
method of a Voting Strategy when the Round is itself initialized. This will set the value for the roundAddress
state variable, which serves two purposes: one preventing reinitialization and adding authorization to certain methods that should only be called by the Round contract.Your implementation of the
IVotingStrategy
interface should implement a vote(bytes[],address)
method. This is where your custom vote-counting logic should live.Gitcoin uses a Quadratic Funding Voting Strategy for all of its Rounds. If you wish to use the same strategy, you must deploy an instance of the Voting Strategy contract using the Factory (see Contracts) before you create a new Round with the Round Factory (see Contracts).
Last modified 1d ago