You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We want the core GovernanceStaker contract to be as general and extensible as possible, so that DAOs can assemble a version of staker that works for them, including with customizations as necessary. To accomplish this, we can make parts of the system extensible via inheritance, allowing the core mechanics of the system to be customized or assembled using appropriate extensions. This issue aims to summarize a few different axes along which this extensibility should be implemented. These tasks should be handled as multiple PRs. This issue is intended as a tracking issue for the goal of extensibility writ large.
Move signature based methods into their own extension #70 Should we also move signature based methods into their own extension? Presumably most DAOs would want them, but it's possible in the future they may be obsoleted by new schemes for account abstraction, new signature schemes, etc...
We want the core GovernanceStaker contract to be as general and extensible as possible, so that DAOs can assemble a version of staker that works for them, including with customizations as necessary. To accomplish this, we can make parts of the system extensible via inheritance, allowing the core mechanics of the system to be customized or assembled using appropriate extensions. This issue aims to summarize a few different axes along which this extensibility should be implemented. These tasks should be handled as multiple PRs. This issue is intended as a tracking issue for the goal of extensibility writ large.
GovernanceStakerHarness
into an implementation that is exercised in the unit and invariant tests #48EIP712
constructor parameters in theGovernanceStaker
constructor that must be passed by the inheriting implementation #50virtual
to allow inheriting implementations to override them if needed #52external
methods should bepublic
insteadDelegationSurrogate
contract to something likeDelegationSurrogateIVotes
and inherit fromIDelegationSurrogate
DelegationSurrgoateIVotesDeployer
that implements_fetchOrDeploySurrogate
to deploy aDelegationSurrogotateIVotes
#73permitAndStake
andpermitAndStakeMore
methods into an (optional) extension (not all governance tokens will have permit methods) #68STAKE_TOKEN
to be a simple IERC20 in GovernanceStaker instead ofIERC20Delegates
#47surrogates
mapping) into the extension. This could also allow us to implement a version that usescreate2
to calculate the surrogate address and therefore avoid the lookup altogether #79The text was updated successfully, but these errors were encountered: