Senate
"There is no civility, only politics."
Last updated
"There is no civility, only politics."
Last updated
As we stated earlier, the Senate Contract is the one that connects N members (tokens) with the DAO structure (Chancellor and/or TimeLock).
While in the monolithic structure, the Governor contract call the token directly, in the Light Bulb structure the Chancellor calls the Senate, that keeps his own book with all Senators (owners of members token) voting weight and representation.
"Representation" is the list of Members (tokens) that the Senator (token owner) represents.
This way Chancellor make just one external call to Senate, that reads his own state to get the information. The cost of keeping the Senate Books updated is diluted between token transfers that uses SenatorVotes extension.
Tokens that implements the Votes pattern can be a Member of Senate, but every interaction with Chancellor contract would need one extra external call to the Votes implementer.
Each Member that implements Votes increases the cost of interacting with the DAO, while SenatorVotes member don't.
If a new member wants to participate in the Senate after it is open, their acceptance must be proposed by an active member of senate and, if the proposal is accepted, the new member begins to participate into the DAO.
Members that implements SenatorVotes and becomes a member after the Senate is open will have to synchronize their owners with the Senate Book, which will increase the acceptance proposal execution cost accordingly to its size.
The SenatorVotes extension implements a snapshot function that returns the current voting power distribution.
Different from the Governor pattern, in the Senate/Chancellor pattern the settings of the DAO like voting delay, voting period etc are kept in the Senate Contract using the SenateSettings extension.
To change the parameters after deploy, a proposal to the DAO is needed.
In case the values used are static, there is only the need to override the parameter getters
โWhen they call the roll in the Senate, the Senators do not know whether to answer 'Present' or 'Not Guilty'.โ โ Theodore Roosevelt
With the flow of new members comes the need to defende the senate against malicious members and senators.
To address this matter, we created two extensions to the Senate: 1) The SenateDeputy Extension that creates the Deputy Marshal role, that have limited but essencial power to protect the senate and its members.
2) The Security extension that exposes to the DAO the quarantine and ban functions.