#proposal #dao #approval #contract #automatic #module #approver

dao-pre-propose-approver

A DAO DAO pre-propose module for automatically making approval proposals for dao-pre-propose-approval-single

2 stable releases

2.3.0 Oct 18, 2023
2.2.0 Jul 9, 2023
2.1.5 Jul 6, 2023
2.1.0 Jul 3, 2023

#1699 in Magic Beans

BSD-3-Clause

245KB
5.5K SLoC

Proposal Approver Contract

dao-pre-propose-approver on crates.io docs.rs

This contract works in conjuction with cwd-pre-propose-approval-single and allows for automatically creating approval proposals when a proposal is submitted for approval.

Approver Logic

On instantiation, this contract registers a hook with the approval contract to automatically create proposals in the approver DAO.

When this contract recieves a proposal as hook from cwd-pre-propose-approval-single, it makes an approval propose in the approval DAO. If approved, the approval proposal calls the approve message on this contract when executed. If the proposal is rejected and closed it fires off reject call.

┌──────────┐         Approver DAO Registers Prop Submission Hook
│          │       ┌──────────────────────────────────────────────┐
│  Account │       │                                              │
│          │       │                                              │
└─────┬────┘       │    Prop Submission Hook creates              │
      │            │    new prop in Approver DAO                  │
      │ Makes prop │   ┌───────────────────────────┐              │
      ▼            ▼   │                           ▼              │
┌──────────────────────┴─┐             ┌────────────────────────┐ │
│                        │             │                        │ │
│  Pre-propose Approval  │             │  Pre-propose Approver  │ │
│                        │◄──┐         │                        │ │
└───────────┬────────────┘   │         └───────────┬────────────┘ │
            │                │                     │              │
            │ Creates prop   │                     │ Creates      │
            │ on approval    │                     │ prop         │
            ▼                │                     ▼              │
┌────────────────────────┐   │         ┌────────────────────────┐ │
│                        │   │         │                        │ │
│     Proposal Single    │   │         │     Proposal Single    │ │
│                        │   │         │                        │ │
└───────────┬────────────┘   │         └───────────┬────────────┘ │
            │                │ Approver            │              │
            │ Normal voting  │ Approves            │ Voting       │
            │                │ or                  │              │
            ▼                │ Rejects             ▼              │
┌────────────────────────┐   │         ┌────────────────────────┐ │
│                        │   │         │                        │ │
│       Main DAO         │   └─────────┤     Approver DAO       ├─┘
│                        │             │                        │
└────────────────────────┘             └────────────────────────┘

Deposits

This contract does not handle deposits. It works in conjunction with the cwd-pre-propose-approval-single contract, which handles the proposal deposits.

Resources

More about the pre-propose design.

More about pre-propose modules.

Dependencies

~9.5MB
~203K SLoC