dao-pre-propose-approver

Crates.iodao-pre-propose-approver
lib.rsdao-pre-propose-approver
version2.6.0
sourcesrc
created_at2023-07-03 18:44:36.670429
updated_at2024-11-08 00:02:38.775756
descriptionA DAO DAO pre-propose module for automatically making approval proposals for dao-pre-propose-approval-single.
homepage
repositoryhttps://github.com/DA0-DA0/dao-contracts
max_upload_size
id907318
size210,072
publishers (github:da0-da0:publishers)

documentation

README

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.

Commit count: 879

cargo fmt