Transaction Proposal #1

Tittle: Support multiple transactions per proposal

Abstract:
It should be possible for the DAO to create a proposal containing multiple transactions. After the voting, if the proposal is approved, the transactions shall execute sequentially. This would remove the need of voting transactions seperateldy for transactions that belong to the same purpose or are dependent on each other (e.g. deployment of a new feature involving more than one contract, updating the state of many addresses in the oracle, minting/transferring tokens to multiple addresses, etc.)

This proposal would also allivieate the problem of voter fatigue by bundling together several transactions in the same tally.

Specification:
Proposals can contain any number of steps. Steps are executed sequentially. Each step can contain any number of transactions, as far as the combined gas of all such transactions is lower than the block gas limit as transactions in the same step are executed in the same block.

Take the following as an example:

  1. Create proposal containing:
    Step1: Transaction1a, Transaction1b, Transaction1c
    Step2: Transaction2
    Step3: Transaction3a, Transaction3b

  2. Create tally to vote proposal.

  3. If tally is Approved, then an executor will be able to execute the transactions step by step, that is:

    Block1: Step1: Transaction1a, Transaction1b, Transaction1c
    Block2: Step2: Transaction2
    Block3: Step3: Transaction3a, Transaction3b

where Block3.number > Block2.number > Block1.number

Verification:
To verify the validaty of this proposal once deployed, follow these steps explained here: https://github.com/hhh01398/hud/issues/16