From 0539e72ab8831e9767c19c9d6b5077a0fcf0388c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B8r=E2=88=82=C2=A1?= Date: Mon, 10 Jun 2024 10:22:59 +0100 Subject: [PATCH] Updated readme and diagrams --- README.md | 15 +- img/Geo Diagrams.drawio | 346 ++++++++++++++++++++++----- img/permission-overview-personal.svg | 3 + img/permission-overview-std.svg | 3 + img/personal-1.svg | 2 +- img/personal-2.svg | 2 +- img/standard-1.svg | 3 + img/standard-2.svg | 3 + img/standard-3.svg | 3 + img/std-1.svg | 3 - img/std-2.svg | 3 - img/std-3.svg | 3 - img/upgrader-1.svg | 4 - img/upgrader.svg | 3 + 14 files changed, 314 insertions(+), 82 deletions(-) create mode 100644 img/permission-overview-personal.svg create mode 100644 img/permission-overview-std.svg create mode 100644 img/standard-1.svg create mode 100644 img/standard-2.svg create mode 100644 img/standard-3.svg delete mode 100644 img/std-1.svg delete mode 100644 img/std-2.svg delete mode 100644 img/std-3.svg delete mode 100644 img/upgrader-1.svg create mode 100644 img/upgrader.svg diff --git a/README.md b/README.md index 51f719b..ed9b145 100644 --- a/README.md +++ b/README.md @@ -41,15 +41,15 @@ In standard spaces, _members_ can create proposals while _editors_ can vote on t The most typical case will be telling the Space Plugin to emit the event of a proposal being processed. It can include emitting a new hash for the contents or accepting a subspace. - + The Main Voting Plugin can also pass proposals that change its own settings. - + To manage who can create proposals, the Member Access Plugin allows anyone to request becoming a member. Editors can approve or reject incoming proposals. - + ### Personal Space @@ -75,8 +75,9 @@ There's an optional feature, where a predefined address can execute the actions ### Joining a space -1. Someone calls `proposeNewMember()` on the `MemberAccessPlugin` +1. Someone calls `proposeAddMember()` on the `MainVotingPlugin` - If the caller is the only editor, the proposal succeeds immediately + - The proposal is created on the `MemberAccessPlugin` because the governance rules differ from the rest of proposals 2. One of the editors calls `approve()` or `reject()` - Calling `approve()` makes the proposal succeed - Calling `reject()` cancels the proposal @@ -148,6 +149,12 @@ See the `MemberAccessExecuteCondition` contract. It restricts what the [MemberAc ### Permissions being used +For standard governance spaces: + + +For personal spaces: + + Below are all the permissions that a [PluginSetup](#plugin-setup-contracts) contract may want to request: Proposal: diff --git a/img/Geo Diagrams.drawio b/img/Geo Diagrams.drawio index c2d0ecb..217a1a4 100644 --- a/img/Geo Diagrams.drawio +++ b/img/Geo Diagrams.drawio @@ -1,6 +1,168 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -13,67 +175,85 @@ - + - + - - + + - - + + - - + + + + + + + + - + - + + + + - + - + - + - + - + - - + + - - + + + + + + + + + + + - + @@ -86,50 +266,72 @@ - + - + - + + + + + + + + + + - - + + - - + + - - + + - - + + + + + - + - + + + + + + + + + + + - + @@ -141,55 +343,73 @@ - - + + + + + - + + + + + + + + + - + - + - - + + + + - - + + + + - - + + + + + - - + + - - - - - + + - - + + - + + + + - + @@ -205,7 +425,7 @@ - + @@ -229,16 +449,16 @@ - + - + - + - + diff --git a/img/permission-overview-personal.svg b/img/permission-overview-personal.svg new file mode 100644 index 0000000..decdfc1 --- /dev/null +++ b/img/permission-overview-personal.svg @@ -0,0 +1,3 @@ + + +
Publish edits
Manage subspaces
Publish edits...
DAO
DAO
Execute
Execute
Upgrade
Upgrade
Main Voting
Plugin

Address list

Main Voting...
Space Plugin
Custom
Space Plugin...
Execute
Execute
Plugin upgrader
address
Plugin upgrader...
Condition
Condition
\ No newline at end of file diff --git a/img/permission-overview-std.svg b/img/permission-overview-std.svg new file mode 100644 index 0000000..28cf77e --- /dev/null +++ b/img/permission-overview-std.svg @@ -0,0 +1,3 @@ + + +
Publish edits
Manage subspaces
DAO
Execute
Update settings
Upgrade
Propose
Main Voting
Plugin

Address list

Execute
Member Access
Plugin

Multisig

Condition
Space Plugin
Custom
Execute
Plugin upgrader
address
Condition
\ No newline at end of file diff --git a/img/personal-1.svg b/img/personal-1.svg index 9b9def7..434c16c 100644 --- a/img/personal-1.svg +++ b/img/personal-1.svg @@ -1,3 +1,3 @@ -
DAO
Personal Space
Admin Plugin
Space Plugin
Execute Proposal
Execute actions
Process Geo proposal
Accept subspace
Reject subspace
Emit events
\ No newline at end of file +
DAO
DAO

Personal Space
Plugin

Admin

Personal Space...
Space Plugin
Custom
Space Plugin...
Members

Publish edits
Accept subspace
Remove subspace
Members...
Execute actions
Execute actions
Publish edits
Accept subspace
Remove subspace
Publish edits...
Emit events (Substream)
Emit events (Substream)
Editors

Execute proposal
Add member
Remove member
Add editor
Remove editor
Editors...
\ No newline at end of file diff --git a/img/personal-2.svg b/img/personal-2.svg index 193d669..63aef0f 100644 --- a/img/personal-2.svg +++ b/img/personal-2.svg @@ -1,3 +1,3 @@ -
DAO
Personal Space
Admin Plugin

Execute proposal
Execute actions
Grant / Revoke
\ No newline at end of file +
DAO
DAO

Personal Space
Plugin

Admin
Personal Space...
Execute proposal
Execute proposal
Execute actions
Execute actions
Execute actions on the DAO
or elsewhere
Grant, revoke, transfer
Execute actions on the DAO...
Update settings
Manage members and editors
Update settings...
\ No newline at end of file diff --git a/img/standard-1.svg b/img/standard-1.svg new file mode 100644 index 0000000..713632c --- /dev/null +++ b/img/standard-1.svg @@ -0,0 +1,3 @@ + + +
DAO
DAO
Main Voting
Plugin

Address list

Main Voting...
Space Plugin
Custom
Space Plugin...
Execute actions
Execute actions
Publish edits
Accept subspace
Remove subspace
Publish edits...
Emit events (Substream)
Emit events (Substream)
Members

Propose edits
Accept subspace
Remove subspace
Members...
Editors

Execute proposal
Add member
Remove member
Add editor
Remove editor
Editors...
Anyone

Propose add member
Anyone...
\ No newline at end of file diff --git a/img/standard-2.svg b/img/standard-2.svg new file mode 100644 index 0000000..66ece42 --- /dev/null +++ b/img/standard-2.svg @@ -0,0 +1,3 @@ + + +
DAO
DAO
Main Voting
Plugin

Address list

Main Voting...
Create Proposal
Vote
Execute
Create Proposal...
Execute actions
Execute actions
Update settings
Manage members and editors
Update settings...
Execute actions on the DAO
or elsewhere
Grant, revoke, transfer
Execute actions on the DAO...
\ No newline at end of file diff --git a/img/standard-3.svg b/img/standard-3.svg new file mode 100644 index 0000000..181c23b --- /dev/null +++ b/img/standard-3.svg @@ -0,0 +1,3 @@ + + +
DAO
DAO
Propose member
Propose member
Main Voting
Plugin

Address list

Main Voting...
Member Access
Plugin

Multisig

Member Access...
Propose new member
Propose new member
Execute add member
Execute add member
Add member
Add member
Approve
Reject
Approve...
\ No newline at end of file diff --git a/img/std-1.svg b/img/std-1.svg deleted file mode 100644 index 90220de..0000000 --- a/img/std-1.svg +++ /dev/null @@ -1,3 +0,0 @@ - - -
DAO
Main Voting
Plugin
Space Plugin
Create Proposal
Vote
Execute
Execute actions
Process Geo proposal
Accept subspace
Reject subspace
Emit events
\ No newline at end of file diff --git a/img/std-2.svg b/img/std-2.svg deleted file mode 100644 index fe9d7f5..0000000 --- a/img/std-2.svg +++ /dev/null @@ -1,3 +0,0 @@ - - -
DAO
Main Voting
Plugin
Create Proposal
Vote
Execute
Execute actions
Update voting settings
Add addresses
Remove addresses
\ No newline at end of file diff --git a/img/std-3.svg b/img/std-3.svg deleted file mode 100644 index e12fd36..0000000 --- a/img/std-3.svg +++ /dev/null @@ -1,3 +0,0 @@ - - -
DAO
Member Access Plugin
Main Voting
Plugin
Propose add/remove member
Propose add/remove editor
Approve
Reject
Execute actions
(condition)
Is editor?
Editor count?
Add member
Remove member
\ No newline at end of file diff --git a/img/upgrader-1.svg b/img/upgrader-1.svg deleted file mode 100644 index 26ae2b2..0000000 --- a/img/upgrader-1.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - -
DAO
DAO
Plugin upgrader
address
Plugin upgrader...
Plugin Setup
Processor
Plugin Setup...
1) Grant permission to PSP
2) Call applyUpdate()
3) Revoke permission to PSP
1) Grant permission to PSP...
Execute actions
(condition)
Execute actions...
2) Apply update
2) Apply update
1) Grant
3) Revoke
1) Grant...
Space Plugin
Space Plugin
Main Voting
Plugin
Main Voting...
Upgrade to and call
Upgrade to and call
Text is not SVG - cannot display
\ No newline at end of file diff --git a/img/upgrader.svg b/img/upgrader.svg new file mode 100644 index 0000000..c906e50 --- /dev/null +++ b/img/upgrader.svg @@ -0,0 +1,3 @@ + + +
DAO
DAO
Plugin upgrader
address
Plugin upgrader...
Plugin Setup
Processor
Plugin Setup...
1) Grant permission to PSP
2) Call applyUpdate()
3) Revoke permission to PSP
1) Grant permission to PSP...
Execute actions
(condition)
Execute actions...
2) Apply update
2) Apply update
1) Grant
3) Revoke
1) Grant...
Space Plugin
Space Plugin
Main Voting
Plugin
Main Voting...
Upgrade to and call
Upgrade to and call
\ No newline at end of file