This PR adds a flex voting client contract that is compatible with Compound V3. This was developed through support from a grant from Compound here
Currently this PR depends upon a fork of Compound V3 (split from main on May 15, 2023). The only change was to make Comet.updateBasePrincipal virtual so that we could add checkpointing in the client. My intention is to upstream this change after we're aligned on the architecture of the present PR and it is approved/merged.
This PR also abstracts the flex voting client logic into a separate abstract contract called FlexVotingClient that can be re-used for client implementations in the future. Doing so allows us to greatly simplify the ATokenFlexVoting implementation of previous PRs, e.g. #11.
Note that this PR leaves a few things unfinished, e.g.:
more thorough testing should be done (see TODO's at the bottom of the test file)
natspec comments (both for FlexVotingClient and for CometFlexVoting)
This PR adds a flex voting client contract that is compatible with Compound V3. This was developed through support from a grant from Compound here
Currently this PR depends upon a fork of Compound V3 (split from main on May 15, 2023). The only change was to make
Comet.updateBasePrincipal
virtual so that we could add checkpointing in the client. My intention is to upstream this change after we're aligned on the architecture of the present PR and it is approved/merged.This PR also abstracts the flex voting client logic into a separate abstract contract called
FlexVotingClient
that can be re-used for client implementations in the future. Doing so allows us to greatly simplify theATokenFlexVoting
implementation of previous PRs, e.g. #11.Note that this PR leaves a few things unfinished, e.g.:
FlexVotingClient
and forCometFlexVoting
)