Skip to content

1.2.0

Compare
Choose a tag to compare
@0xble 0xble released this 22 Jun 15:33
· 58 commits to main since this release

Changelog

New crowdfunds added:

  • InitialETHCrowdfund
    • Crowdfund to raise the initial funds for new ETH parties
    • It is created through the CrowdfundFactory and is created alongside the Party it will be raising funds for
    • Set as an authority on the Party
  • ReraiseETHCrowdfund
    • Crowdfund to re-raise funds for existing ETH parties
    • It is created through the ReraiseETHProposal by ETH parties
    • Set as an authority on the Party
  • ETHCrowdfundBase.sol
    • Base contract inherited by InitialETHCrowdfund and ReraiseETHCrowdfund

New proposals added:

  • DistributeProposal
    • Proposal to create a distribution for ETH parties that are configured for distributionsRequireVote
    • Useless for pre-1.2 parities
  • AddAuthorityProposal
    • Proposal to add a new authority
    • Initial usecase is so parties may perform re-raise crowdfunds by adding the ReraiseETHCrowdfund as an authority
    • Will revert if called by pre-1.2 parties
  • OperatorProposal
    • Proposal to allow parties to perform specific operations (e.g. buying NFTs) using a new type of contract called an "operator" which executes logic to do certain actions on behalf of the party

New feature to allow parties to configure rage quit for members:

  • PartyGovernanceNFT
    • Added setRageQuit() function to allow host to enable/disable rage quit
    • When members rage quit, they will burn their party card and receive their share of the party's balance of fungible tokens

New category of contracts called "operators" used by the new OperatorProposal:

Primary contracts modified:

  • PartyGovernance
    • Modified to handle new configuration options (distributionsRequireVote and allowArbCallsToSpendPartyEth)
    • Modified to gate distribute() for parties configured for distributionsRequireVote
  • PartyGovernanceNFT
    • Modified to allow multiple authorities
    • Modified to expand abilities of authorities to support new ETH crowdfunds (InitialETHCrowdfund and ReraiseETHCrowdfund)
  • ProposalExecutionEngine
    • Modified to support new proposals (DistributionProposal and ReraiseETHProposal)
  • ProposalStorage
    • Modified to store proposal execution engine boolean flags
  • ArbitraryCallsProposal
    • Modified to allow spending party's ETH if allowArbCallsToSpendPartyEth is set
      • Will not be for pre-1.2 parties
  • PartyFactory
    • Modified to allow passing in the implementation address to deploy
  • CrowdfundFactory
    • Modified to add new functions to create new ETH crowdfunds (InitialETHCrowdfund and ReraiseETHCrowdfund)
    • Modified to allow passing in the implementation address to deploy

Minor changes:

  • Update to Solidity 0.8.20
  • Update to use the Yul intermediate representation compilation pipeline when compiling contracts