You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+19-7Lines changed: 19 additions & 7 deletions
Original file line number
Diff line number
Diff line change
@@ -29,11 +29,12 @@ The current repository provides the plugins necessary to cover two use cases:
29
29
30
30
1. A standard space where members propose changes and editors vote on them
31
31
- Space plugin
32
-
- Member Add plugin
33
32
- Standard Governance plugin
34
-
2. A personal space, where editors apply changes immediately
33
+
- Standard Member Add helper
34
+
2. A personal space, where editors apply changes and members can also propose them
35
35
- Space plugin
36
36
- Personal Admin plugin
37
+
- Personal Member Add helper
37
38
38
39
### Standard Space
39
40
@@ -43,29 +44,40 @@ The most typical case will be telling the Space Plugin to emit the event of a pr
43
44
44
45
<imgsrc="./img/standard-1.svg">
45
46
46
-
The Standard Governance Plugin can also pass proposals that change its own settings.
47
+
The Standard Governance Plugin can also pass proposals that change its own settings. Arbitrary actions are also possible.
47
48
48
49
<imgsrc="./img/standard-2.svg">
49
50
50
-
To manage who can create proposals, the Member Add Plugin allows anyone to request becoming a member. Editors can approve or reject incoming proposals.
51
+
To manage who can create proposals, the Member Add helper allows anyone to request becoming a member. Editors can approve or reject new membership proposals.
52
+
53
+
- When multiple editors exist
54
+
- If the proposer is an editor then another editor needs to approve
55
+
- If the proposer is not an editor, the first editor to approve automatically executes the approval/rejection
56
+
- When only one editor exists, the member is added right away
51
57
52
58
<imgsrc="./img/standard-3.svg">
53
59
54
60
### Personal Space
55
61
56
-
Personal spaces are a simplified version, where anyone defined as editor can immediatelly execute proposals. Typically to edit the contents of a space.
62
+
Personal spaces feature a simplified governance model, where anyone defined as editor can immediatelly execute proposals. Members can also propose. Typically to edit the contents of a space, but also to manage permissions.
57
63
58
64
<imgsrc="./img/personal-1.svg">
59
65
60
66
Editors may also execute proposals who define new editors.
61
67
62
68
<imgsrc="./img/personal-2.svg">
63
69
70
+
Similarly to standard spaces, anyone can request to become a member on a Personal Space. In this case, the first editor to approve or reject will settle the proposal.
71
+
64
72
### Plugin Upgrader
65
73
66
74
There's an optional feature, where a predefined address can execute the actions to upgrade a plugin to the latest published version.
67
75
68
-
<imgsrc="./img/upgrader-1.svg">
76
+
<imgsrc="./img/upgrader.svg">
77
+
78
+
Only the `Space` plugin, the `StdGovernancePlugin` and the `StdMemberAddHelper` may be upgraded.
79
+
80
+
The plugin and the helper related to Personal Spaces are cannot be upgraded. This is intentional, because an editor could unilaterally upgrade to a malicious governance implementation and nobody would easily realize it. Forcing to install a brand new plugin makes such a situation become explicit.
69
81
70
82
## Global lifecycle
71
83
@@ -654,7 +666,7 @@ Note:
654
666
When preparing the installation, an `InstallationPrepared` event is emitted. Using Typechain with Ethers:
655
667
656
668
-`event.args.preparedSetupData.plugin` contains the address of the Standard Governance plugin
657
-
-`event.args.preparedSetupData.helpers` contains an array with the address of the Member Add plugin
669
+
-`event.args.preparedSetupData.helpers` contains an array with the address of the Member Add helper
0 commit comments