ProposalExecutionEngine
Upgradable contract that implements proposal execution logic for Parties. Inherits code for all the proposal types a Party will support.
Code
Functions
getCurrentInProgressProposalId
Get the current InProgress proposal ID.
With this version, only one proposal may be in progress at a time.
function getCurrentInProgressProposalId() external view returns (uint256 id);
executeProposal
Execute a proposal.
Must be delegatecalled into by PartyGovernance. If the proposal is incomplete, continues its next step (if possible). If another proposal is incomplete, this will fail. Only one incomplete proposal is allowed at a time.
function executeProposal(ExecuteProposalParams memory params)
    external
    onlyDelegateCall
    returns (bytes memory nextProgressData);
Parameters
| Name | Type | Description | 
|---|---|---|
| params | ExecuteProposalParams | The data needed to execute the proposal. | 
Returns
| Name | Type | Description | 
|---|---|---|
| nextProgressData | bytes | Bytes to be passed into the next execute() call, if the proposal execution is incomplete. Otherwise, empty bytes to indicate the proposal is complete. | 
cancelProposal
Forcibly cancel an incomplete proposal.
This is intended to be a last resort as it can leave a party in a broken step. Whenever possible, proposals should be allowed to complete their entire lifecycle.
function cancelProposal(uint256 proposalId) external onlyDelegateCall;
Parameters
| Name | Type | Description | 
|---|---|---|
| proposalId | uint256 | The ID of the proposal to cancel. |