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 editsManage subspacesPublish edits...DAODAOExecuteExecuteUpgradeUpgradeMain VotingPluginAddress listMain Voting...Space PluginCustomSpace Plugin...ExecuteExecutePlugin upgraderaddressPlugin upgrader...ConditionCondition \ 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 editsManage subspacesDAOExecuteUpdate settingsUpgradeProposeMain VotingPluginAddress listExecuteMember AccessPluginMultisigConditionSpace PluginCustomExecutePlugin upgraderaddressCondition \ 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 @@ -DAOPersonal SpaceAdmin PluginSpace PluginExecute ProposalExecute actionsProcess Geo proposalAccept subspaceReject subspaceEmit events \ No newline at end of file +DAODAOPersonal SpacePluginAdminPersonal Space...Space PluginCustomSpace Plugin...MembersPublish editsAccept subspaceRemove subspaceMembers...Execute actionsExecute actionsPublish editsAccept subspaceRemove subspacePublish edits...Emit events (Substream)Emit events (Substream)EditorsExecute proposalAdd memberRemove memberAdd editorRemove editorEditors... \ 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 @@ -DAOPersonal SpaceAdmin PluginExecute proposalExecute actionsGrant / Revoke \ No newline at end of file +DAODAOPersonal SpacePluginAdminPersonal Space...Execute proposalExecute proposalExecute actionsExecute actionsExecute actions on the DAOor elsewhereGrant, revoke, transferExecute actions on the DAO...Update settingsManage members and editorsUpdate 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 @@ + + +DAODAOMain VotingPluginAddress listMain Voting...Space PluginCustomSpace Plugin...Execute actionsExecute actionsPublish editsAccept subspaceRemove subspacePublish edits...Emit events (Substream)Emit events (Substream)MembersPropose editsAccept subspaceRemove subspaceMembers...EditorsExecute proposalAdd memberRemove memberAdd editorRemove editorEditors...AnyonePropose add memberAnyone... \ 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 @@ + + +DAODAOMain VotingPluginAddress listMain Voting...Create ProposalVoteExecuteCreate Proposal...Execute actionsExecute actionsUpdate settingsManage members and editorsUpdate settings...Execute actions on the DAOor elsewhereGrant, revoke, transferExecute 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 @@ + + +DAODAOPropose memberPropose memberMain VotingPluginAddress listMain Voting...Member AccessPluginMultisigMember Access...Propose new memberPropose new memberExecute add memberExecute add memberAdd memberAdd memberApproveRejectApprove... \ 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 @@ - - -DAOMain VotingPluginSpace PluginCreate ProposalVoteExecuteExecute actionsProcess Geo proposalAccept subspaceReject subspaceEmit 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 @@ - - -DAOMain VotingPluginCreate ProposalVoteExecuteExecute actionsUpdate voting settingsAdd addressesRemove 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 @@ - - -DAOMember Access PluginMain Voting PluginPropose add/remove memberPropose add/remove editorApproveRejectExecute actions(condition)Is editor?Editor count?Add memberRemove 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 @@ - - - -DAODAOPlugin upgraderaddressPlugin upgrader...Plugin SetupProcessorPlugin Setup...1) Grant permission to PSP2) Call applyUpdate()3) Revoke permission to PSP1) Grant permission to PSP...Execute actions(condition)Execute actions...2) Apply update2) Apply update1) Grant3) Revoke1) Grant...Space PluginSpace Plugin Main Voting PluginMain Voting...Upgrade to and callUpgrade to and callText 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 @@ + + +DAODAOPlugin upgraderaddressPlugin upgrader...Plugin SetupProcessorPlugin Setup...1) Grant permission to PSP2) Call applyUpdate()3) Revoke permission to PSP1) Grant permission to PSP...Execute actions(condition)Execute actions...2) Apply update2) Apply update1) Grant3) Revoke1) Grant...Space PluginSpace Plugin Main Voting PluginMain Voting...Upgrade to and callUpgrade to and call \ No newline at end of file
Personal SpacePlugin