Skip to content

Commit

Permalink
Merge branch 'main' into work-0xj4an-patch-2
Browse files Browse the repository at this point in the history
  • Loading branch information
0xzoz authored Sep 12, 2024
2 parents 7e2a252 + eb8b37c commit fddc419
Show file tree
Hide file tree
Showing 2 changed files with 90 additions and 0 deletions.
77 changes: 77 additions & 0 deletions CGPs/cgp-0149.md
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)
13 changes: 13 additions & 0 deletions CGPs/cgp-0149/mainnet.json
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"
}
]

0 comments on commit fddc419

Please sign in to comment.