@paulo and me have been working on how should look like a Gardens changed with the Commons Upgrade.
Gardens permission table
These are the gardens default permissions that will be changed by the Commons Upgrade:
App | Permission | Grantee | Manager |
---|---|---|---|
ACL | Create permissions | DV (GDN) | DV (GDN) |
Agent 1 | Execute actions | DV (GDN) | DV (GDN) |
Agent 1 | Run EVM Script | DV (GDN) | DV (GDN) |
Agent 2 | Transfer Agent’s tokens | CV (GDN) | DV (GDN) |
Agent 2 | Execute actions | DV (GDN) | DV (GDN) |
Agent 2 | Run EVM Script | DV (GDN) | DV (GDN) |
Agreement | Change Agreement configuration | DV (GDN) | DV (GDN) |
Agreement | Manage Agreement disputable apps | Collateral Requirement Updater | DV (GDN) |
CV (GDN) | Update settings | DV (GDN) | DV (GDN) |
CV (GDN) | Create proposals | Any account | DV (GDN) |
CV (GDN) | Cancel proposals | DV (GDN) | DV (GDN) |
CV (GDN) | Challenge votes | Any account | DV (GDN) |
DV (GDN) | Create new votes | Any account | DV (GDN) |
DV (GDN) | Challenge votes | Any account | DV (GDN) |
EVM Script Registry | Add executors | DV (GDN) | DV (GDN) |
EVM Script Registry | Enable and disable executors | DV (GDN) | DV (GDN) |
Kernel | Manage apps | DV (GDN) | DV (GDN) |
Issuance | Update the settings | DV (GDN) | DV (GDN) |
Tokens | Mint tokens | Issuance | DV (GDN) |
Tokens | Burn tokens | Issuance | DV (GDN) |
*GDN: Gardens’ token minted by the Tokens app
Commons Upgrade script pseudo-code
We are working on a script that will be able to transform a Garden into a Common with the following set of actions:
- Install and initialize a new agent (our ABC reserve)
- Install and initialize bonding curve
- Install and initialize migration tools
- Add bonding curve permissions
- Add migration tools permissions
- Disable issuance (remove permissions)
- Execute
marketMaker.addCollateralToken(wxDAI, 1, 0, reserveRatio)
Commons permission table
The resulting permission should be as follows:
App | Permission | Grantee | Manager |
---|---|---|---|
ACL | Create permissions | DV (TEC) | DV (TEC) |
Agent 1 | Execute actions | DV (GDN) | DV (GDN) |
Agent 1 | Run EVM Script | DV (GDN) | DV (GDN) |
Agent 2 | Transfer Agent’s tokens | CV (GDN) | DV (GDN) |
Agent 2 | Execute actions | DV (GDN) | DV (GDN) |
Agent 2 | Run EVM Script | DV (GDN) | DV (GDN) |
Agreement | Change Agreement configuration | DV (TEC) | DV (TEC) |
Agreement | Manage Agreement disputable apps | Collateral Requirement Updater | DV (TEC) |
Bonding Curve | Update fees | Voting (TEC) | DV (TEC) |
Bonding Curve | Add tokens as whitelisted collaterals | DV (TEC) | DV (TEC) |
Bonding Curve | Open trading | DV (TEC) | DV (TEC) |
Bonding Curve | Make buy orders | Any account | DV (TEC) |
Bonding Curve | Make sell orders | Any account | DV (TEC) |
CV (TEC) | Update settings | Voting (TEC) | DV (TEC) |
CV (TEC) | Create proposals | Any account | DV (TEC) |
CV (TEC) | Cancel proposals | DV (TEC) | DV (TEC) |
CV (TEC) | Challenge votes | Any account | DV (TEC) |
DV (TEC) | Create new votes | Any account | DV (TEC) |
DV (TEC) | Challenge votes | Any account | DV (TEC) |
EVM Script Registry | Add executors | DV (TEC) | DV (TEC) |
EVM Script Registry | Enable and disable executors | DV (TEC) | DV (TEC) |
Kernel | Manage apps | DV (TEC) | DV (TEC) |
Migration Tools | Prepare claims | Migration Tools (Old Dao) | DV (TEC) |
Tokens | Mint tokens | Bonding Curve | DV (TEC) |
Tokens | Burn tokens | Bonding Curve | DV (TEC) |
Tokens | Issue tokens | Migration Tools | DV (TEC) |
Tokens | Assign tokens | Migration Tools | DV (TEC) |
Agent 3 (Reserve) | Transfer Vault’s tokens | Bonding Curve | DV (TEC) |
Edit (June 22, 2021): We simplified the scope to only have one disputable voting, and to install a third agent instead of a vault.