From b39b7d862b924dc398a3db414385e909f69c83a6 Mon Sep 17 00:00:00 2001 From: Marcin Chrzanowski Date: Thu, 12 Sep 2024 15:33:44 +0200 Subject: [PATCH 1/3] Add CGP 149: decrease constitution for GoldToken.increaseAllowance --- CGPs/cgp-0149.md | 77 ++++++++++++++++++++++++++++++++++++++ CGPs/cgp-0149/mainnet.json | 13 +++++++ 2 files changed, 90 insertions(+) create mode 100644 CGPs/cgp-0149.md create mode 100644 CGPs/cgp-0149/mainnet.json diff --git a/CGPs/cgp-0149.md b/CGPs/cgp-0149.md new file mode 100644 index 00000000..723fcce5 --- /dev/null +++ b/CGPs/cgp-0149.md @@ -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: TBD +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 --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](TBD) diff --git a/CGPs/cgp-0149/mainnet.json b/CGPs/cgp-0149/mainnet.json new file mode 100644 index 00000000..54234c36 --- /dev/null +++ b/CGPs/cgp-0149/mainnet.json @@ -0,0 +1,13 @@ +[ + { + "contract": "GovernanceProxy", + "address": "0xD533Ca259b330c7A88f74E000a3FaEa2d63B7972", + "function": "setConstitution", + "args": [ + "0x471EcE3750Da237f93B8E339c536989b8978a438", + "0x39509351", + "600000000000000000000000" + ], + "value": "0" + } +] From 370b7b2617e3f141d437d059817bb06f7e8534ed Mon Sep 17 00:00:00 2001 From: Marcin Chrzanowski Date: Thu, 12 Sep 2024 15:36:35 +0200 Subject: [PATCH 2/3] Add forum link --- CGPs/cgp-0149.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CGPs/cgp-0149.md b/CGPs/cgp-0149.md index 723fcce5..c9de59b0 100644 --- a/CGPs/cgp-0149.md +++ b/CGPs/cgp-0149.md @@ -74,4 +74,4 @@ easier to pass, but they will still be as difficult to pass as proposals with ## Useful Links -* [Forum Post](TBD) +* [Forum Post](https://forum.celo.org/t/decrease-constitution-parameter-for-goldtoken-increaseallowance/9002) From 33e2acf80f7ff0a598a3fa2d415ab40548cefc27 Mon Sep 17 00:00:00 2001 From: Marcin Chrzanowski Date: Thu, 12 Sep 2024 17:20:20 +0200 Subject: [PATCH 3/3] Add forum link in frontmatter --- CGPs/cgp-0149.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CGPs/cgp-0149.md b/CGPs/cgp-0149.md index c9de59b0..181153bf 100644 --- a/CGPs/cgp-0149.md +++ b/CGPs/cgp-0149.md @@ -4,7 +4,7 @@ title: 'Decrease `constitution` parameter for `GoldToken.increaseAllowance`' date-created: 2024-09-10 author: 'Martin Chrzanowski (@m-chrzan)' status: DRAFT -discussions-to: TBD +discussions-to: https://forum.celo.org/t/decrease-constitution-parameter-for-goldtoken-increaseallowance/9002 governance-proposal-id: date-executed: ---