8000 Releases · ScopeLift/flexible-voting · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Releases: ScopeLift/flexible-voting

v3.0.0

13 Jan 19:41
d3c62a3
Compare
Choose a tag to compare

Breaking Changes

  • This version updates openzeppelin-contracts from v5.0.2 to v5.1.0.
  • GovernorCountingFractional was removed from this repo in favor of the OZ implementation in 5.1.0, found here. Integrators should bump OZ and import from there

Non-Breaking Changes

  • This version updates forge-std to the latest version, v1.9.5

v2.0.0

10 Jan 21:25
37e12d4
Compare
Choose a tag to compare

Breaking Changes

  • This version updates openzeppelin-contracts from 4.9.3 to v5.0.2.
  • FlexVotingClient now uses Trace208 for balance checkpoints. Any child contract that read from or wrote to balance checkpoints will need to be updated.
  • FlexVotingClient and GovernorCountingFractional now revert with custom, namespaced errors rather than strings
    • e.g. FlexVotingClient__NoVotingWeight is thrown in place of the string "no weight".
  • FlexVotingClient requires that voting tokens be EIP6372-compatible, see IVotingToken for details
  • GovernorCountingFractional removed its override of castVoteWithReasonAndParamsBySig, as OpenZeppelin updated the parent version to patch the security vulnerability our override was created to avoid
  • FlexVotingClient, GovernorCountingFractional, and FractionalPool now require solidity >= 0.8.20 to compile, up from 0.8.10
  • FlexVotingClient is now issued under MIT license

Non-Breaking Changes

  • Standalone unit, fuzz, and invariant tests were written for FlexVotingClient
  • FlexVotingClient now uses EIP6372-compatible timepoints instead of block numbers to checkpoint balances, allowing it to also interface with Governors/voting-tokens that have timestamp clocks
  • FlexVotingClient exposes a _checkpointTotalBalance internal function to make it easy for child contracts to create total balance checkpoints. The new function is analogous to the _checkpointRawBalanceOf function already in place for individual account balance checkpointing.

v1.2.0

06 Nov 22:02
d81f597
Compare
Choose a tag to compare

What's Changed

  • Bump OZ to v4.9.6, the latest pre-v5.x.x version
  • Bump solmate to latest (v6.8.0)
  • Bump forge-std to latest

Full Changelog: v1.1.3...v1.2.0

v1.1.3

22 Nov 20:59
Compare
Choose a tag to compare

This version updates openzeppelin-contracts, a transitive dependency of flexible-voting, to v4.9.3. This was the last version of the OpenZeppelin contracts in the v4.x series. A future of version of Flexible Voting will be released with compatibility for OpenZeppelin v5.x.

This release does not change any code in the core Flexible Voting code, i.e. the GovernorCountingFractional contract or the FlexibleVotingClient contract. Upgrading should be safe in all cases, except when you are depending on a part of OpenZeppelin—through Flexible Voting—which changed between v4.8.0 and v4.9.3.

v1.1.2

26 Oct 19:47
Compare
Choose a tag to compare

This release changes the imports internally in the project to use relative imports. We do this because projects attempting to import the Flexible Voting using Foundry were seeing the error "Could not read source code for analysis" when attempting to run forge coverage. It is unclear if this is a bug in Foundry but switching to relative imports resolve the problem. See this issue in the Foundry repo for more information. No changes, breaking or otherwise, were made to the source other than to change the import paths.

v1.1.1

19 Oct 19:51
Compare
Choose a tag to compare

This release does not make any source changes to GovernorCountingFractional, breaking or otherwise. Instead, this release removes voting client contract implementations out of this repo and into their own located here. This avoids unneeded transitive dependencies being pulled into projects that use Flexible Voting as a direct dependency.

This release also includes minor cleanup to the FlexibleVotingClient base contract. Please note, if you're planning an integration with Flexible Voting, that breaking improvements to this base client are planned in the near future.

If your project uses v1.1.0, you can safely upgrade to this release.

v1.1.0

06 Jun 20:38
e5de2ef
Compare
Choose a tag to compare

This release fixes a bug in GovernorCountingFractional that would have allowed votes cast by signature to be replayed if the following conditions were met:

  • The delegate voted via signature using the castVoteWithReasonAndParamsBySig method
  • The delegate cast a vote that assigned less than or equal to 50% of their available voting weight
  • Replaying the signature vote would not put the delegate's total voting power over 100%, after accounting for other votes cast

To resolve the issue, a nonce was added when voting fractionally by signature. When casting a fractional vote by signature the nonce must be included in the params past to the castVoteWithReasonAndParamsBySig method.

This bug was uncovered in an audit by Trail of Bits. The fix was reviewed by OpenZeppelin and the updated version of their audit report includes a summary of the bug and subsequent fix.

v1.0.0 should now be considered deprecated. Only v1.1.0 of the GovernorCountingFractional contract should be used.

v1.0.0

04 Apr 19:31
4399694
Compare
Choose a tag to compare

This is the first official release of GovernorCountingFractional, an extension of OpenZeppelin's Governor contract that allows delegates to:

  • Split their voting weight across AGAINST/FOR/ABSTAIN options.
  • Cast partial votes with less than their full voting weight.
  • Cast multiple/rolling votes of partial weight for the same proposal.

This release marks the conclusion of OpenZeppelin's audit of this extension. Their report is available here.

As of this commit, fixes for all issues reported in the audit were reviewed by OpenZeppelin and have been merged. See the audit report "Conclusions" section for confirmation, which also links to this commit.

0