1.2.0
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 theParty
it will be raising funds for - Set as an
authority
on theParty
ReraiseETHCrowdfund
- Crowdfund to re-raise funds for existing ETH parties
- It is created through the
ReraiseETHProposal
by ETH parties - Set as an
authority
on theParty
ETHCrowdfundBase.sol
- Base contract inherited by
InitialETHCrowdfund
andReraiseETHCrowdfund
- Base contract inherited by
New proposals added:
DistributeProposal
- Proposal to create a distribution for ETH parties that are configured for
distributionsRequireVote
- Useless for pre-1.2 parities
- Proposal to create a distribution for ETH parties that are configured for
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
- Added
New category of contracts called "operators" used by the new OperatorProposal
:
CollectionBatchBuyOperator
- Used by parties to buy NFTs through proposals
Primary contracts modified:
PartyGovernance
- Modified to handle new configuration options (
distributionsRequireVote
andallowArbCallsToSpendPartyEth
) - Modified to gate
distribute()
for parties configured fordistributionsRequireVote
- Modified to handle new configuration options (
PartyGovernanceNFT
- Modified to allow multiple authorities
- Modified to expand abilities of authorities to support new ETH crowdfunds (
InitialETHCrowdfund
andReraiseETHCrowdfund
)
ProposalExecutionEngine
- Modified to support new proposals (
DistributionProposal
andReraiseETHProposal
)
- Modified to support new proposals (
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
- Modified to allow spending party's ETH if
PartyFactory
- Modified to allow passing in the implementation address to deploy
CrowdfundFactory
- Modified to add new functions to create new ETH crowdfunds (
InitialETHCrowdfund
andReraiseETHCrowdfund
) - Modified to allow passing in the implementation address to deploy
- Modified to add new functions to create new ETH crowdfunds (
Minor changes:
- Update to Solidity 0.8.20
- Update to use the Yul intermediate representation compilation pipeline when compiling contracts