Task Drafts
Create draft task
Inputs
Metadata: string; the uri for the metadata of the proposal.
StartDate: uint64; unix timestamp (seconds) when the proposal voting period starts.
EndDate: uint64; unix timestamp (seconds) when the proposal voting period ends.
TaskInfo: CreateTaskInfo (tuple(string, uint64, ERC20Transfer[] (tuple(address, uint96)), address, PreapprovedApplication[] (tuple(address, Reward[] (tuple(bool,address,uint88)))))); information about the task you want to propose to be created.
Code
```solidity
function createDraftTask(
bytes calldata _metadata,
uint64 _startDate,
uint64 _endDate,
CreateTaskInfo calldata _taskInfo
) external {
// Could also add approve ERC20's of budget here
// Currently the DAO should approve select ERC20's in advance (once) for unlimited spending
IDAO.Action[] memory actions = new IDAO.Action[](1);
{
bytes memory callData = abi.encodeWithSelector(
tasks.createTask.selector,
_taskInfo.metadata,
_taskInfo.deadline,
_taskInfo.budget,
_taskInfo.manager,
_taskInfo.preapproved
);
actions[0] = IDAO.Action(address(tasks), 0, callData);
}
governancePlugin.createPluginProposal(
_metadata,
actions,
0,
_startDate,
_endDate
);
}
```
Update Addresses
Inputs
Tasks: ITasks (address); the new address of the tasks contract used to create the draft tasks.
GovernancePlugin: IPluginProposals (address); the new address of the governance plugin used to create proposals.
Code
```solidity
function updateAddresses(
ITasks _tasks,
IPluginProposals _governancePlugin
) external auth(UPDATE_ADDRESSES_PERMISSION_ID) {
tasks = _tasks;
governancePlugin = _governancePlugin;
}
```
Last updated