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