-
Notifications
You must be signed in to change notification settings - Fork 68
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add CGP 149: decrease constitution for GoldToken.increaseAllowance (#482
) * Add CGP 149: decrease constitution for GoldToken.increaseAllowance * Add forum link * Add forum link in frontmatter --------- Co-authored-by: 0xj4an (Work Account) <[email protected]>
- Loading branch information
1 parent
27e2fc3
commit eb8b37c
Showing
2 changed files
with
90 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
--- | ||
cgp: 149 | ||
title: 'Decrease `constitution` parameter for `GoldToken.increaseAllowance`' | ||
date-created: 2024-09-10 | ||
author: 'Martin Chrzanowski (@m-chrzan)' | ||
status: DRAFT | ||
discussions-to: https://forum.celo.org/t/decrease-constitution-parameter-for-goldtoken-increaseallowance/9002 | ||
governance-proposal-id: | ||
date-executed: | ||
--- | ||
|
||
## Overview | ||
|
||
This proposal is to decrease the `constitution` parameter (the parameter that | ||
determines what percentage of YES votes are necessary for a Celo Governance | ||
proposal to pass) of `GoldToken.increaseAllowance` from 90% to 60%. This is in | ||
line with the `constitution` parameter of `GoldToken.approve`. | ||
|
||
### Status | ||
|
||
- DRAFT = Feedback collection | ||
|
||
### Proposal Description | ||
|
||
The Governance contract defines `constitution` parameters that dictate what | ||
percentage of votes need to be YES votes for a CGP to pass. In general more | ||
risky functions (that affect important protocol parameters or access to | ||
community funds) should have a higher threshold (think how in e.g. US Congress, | ||
some things require a simple 50% majority, others a 2/3rds "super majority"). | ||
|
||
At mainnet launch, the cLabs team proposed `constitution` parameters for most | ||
core contract functions. For some reason `GoldToken.increaseAllowance` was | ||
missing in this initial configuration, so its difficulty is based on the default | ||
for the GoldToken contract - 90%. `GoldToken.approve` was set explicitly to 60%. | ||
|
||
As `increaseAllowance` is very similar in behavior to `approve` (if anything, | ||
it's less risky than `approve`), this proposal aims to set its `constitution` | ||
parameter to 60%, reducing from the current 90%. It appears that setting a | ||
similar parameter for `increaseAllowance` was simply missed by the dev team when | ||
proposing the initial Governance configuration. | ||
|
||
## Proposed Changes | ||
|
||
1. Set the constitution parameter. | ||
- Destination: Governance | ||
- Data: setConstitution(GoldTokenProxy, increaseAllowance.functionSelector, 60%) | ||
- Value: 0 | ||
|
||
## Verification | ||
|
||
Once the proposal is proposed on chain, fetch it with | ||
|
||
celocli governance:show --proposalID <TBD> --node https://forno.celo.org | ||
|
||
Verify that: | ||
|
||
- The proposal has value 0 (no CELO should be transferred). | ||
- There is one transaction in the proposal. | ||
- The transaction destination is the Governance contract | ||
(`0xD533Ca259b330c7A88f74E000a3FaEa2d63B7972`, verify against [Celo | ||
docs](https://docs.celo.org/contract-addresses)). | ||
- The transaction payload is a call to `setConstitution` with parameters: | ||
- Address of the CELO token contract | ||
(`0x471EcE3750Da237f93B8E339c536989b8978a438`, verify against [Celo | ||
docs](https://docs.celo.org/token-addresses)). | ||
- The function selector for `increaseAllowance` (`0x39509351`) | ||
- 60% written as a Fixidity value (`600000000000000000000000` or `6e23`). | ||
|
||
## Risks | ||
|
||
This proposal will make governance proposals with `GoldToken.increaseAllowance` | ||
easier to pass, but they will still be as difficult to pass as proposals with | ||
`GoldToken.approve`, which has a similar risk profile. | ||
|
||
## Useful Links | ||
|
||
* [Forum Post](https://forum.celo.org/t/decrease-constitution-parameter-for-goldtoken-increaseallowance/9002) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
[ | ||
{ | ||
"contract": "GovernanceProxy", | ||
"address": "0xD533Ca259b330c7A88f74E000a3FaEa2d63B7972", | ||
"function": "setConstitution", | ||
"args": [ | ||
"0x471EcE3750Da237f93B8E339c536989b8978a438", | ||
"0x39509351", | ||
"600000000000000000000000" | ||
], | ||
"value": "0" | ||
} | ||
] |