Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add ccop oracle whitelist proposal md + json #486

Merged
merged 3 commits into from
Oct 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 69 additions & 0 deletions CGPs/cgp-0150.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
---
cgp: 150
title: Adding oracles to support cCOP
date-created: 2024-10-17
author: "Bayo Sodimu ([email protected])"
status: DRAFT
discussions-to: https://forum.celo.org/t/launch-of-ccop-colombia-s-first-decentralized-stablecoin/9211
governance-proposal-id:
date-executed:
---

## Overview

This governance proposal will whitelist the Chainlink relayer contracts required to support the cCOP. The ChainlinkRelayer will transmit rate feed data from a Chainlink price feed or an aggregation of multiple Chainlink price feeds to the SortedOracles contract.

The rate feeds involved are COP/USD and CELO/COP, both of which already have relayer contracts deployed. Details of the rate feeds and corresponding relayer contracts are provided in the table below:

| RateFeed | RateFeedId | Relayer Contract |
| --------------- | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------- |
| relayed:COPUSD | 0x0196D1F4FdA21fA442e53EaF18Bf31282F6139F1 | [0x783F947126Adb7646c2A459B867f5B526D2E6603](https://celoscan.io/address/0x783F947126Adb7646c2A459B867f5B526D2E6603#readContract) |
| relayed:CELOCOP | 0x32ABF1cBdFdcD56790f427694be2658d4B1A83bC | [0x5926F76D43Ce2D778880226b3C4e7156C8Ece99e](https://celoscan.io/address/0x5926F76D43Ce2D778880226b3C4e7156C8Ece99e#readContract) |

## Proposed Changes

1. **Add CELOCOP relayer as oracle**

- Destination: SortedOracles.addOracle
- Data: `0x32ABF1cBdFdcD56790f427694be2658d4B1A83bC`, `0x5926F76D43Ce2D778880226b3C4e7156C8Ece99e`
- Value: 0

2. **Set token report expiry for CELOCOP**

- Destination: SortedOracles.tokenReportExpirySeconds
- Data: `0x32ABF1cBdFdcD56790f427694be2658d4B1A83bC`, 360
- Value: 0

3. **Add COPUSD relayer as oracle**

- Destination: SortedOracles.addOracle
- Data: `0x0196D1F4FdA21fA442e53EaF18Bf31282F6139F1`, `0x783F947126Adb7646c2A459B867f5B526D2E6603`
- Value: 0

4. **Set token report expiry for COPUSD**

- Destination: SortedOracles.tokenReportExpirySeconds
- Data: `0x0196D1F4FdA21fA442e53EaF18Bf31282F6139F1`, 360
- Value: 0

5. **Set equivalent token for CELOPHP ratefeedId**

- Destination: SortedOracles.setEquivalentToken
- Data: `0x8A567e2aE79CA692Bd748aB832081C45de4041eA`, `0x32ABF1cBdFdcD56790f427694be2658d4B1A83bC`
- Value: 0

## Verification

Check the [forum post](https://forum.celo.org/t/launch-of-ccop-colombia-s-first-decentralized-stablecoin/9211) for a detailed description of verification steps.

## Risks

The data relayed by the ChainlinkRelayer contract is only as secure as the Chainlink price feeds it relies on. If the Chainlink price feeds are compromised, the data relayed by the ChainlinkRelayer contract could be manipulated. This could lead to the SortedOracles contract reporting incorrect rate feeds to the rest of the protocol.

This risk is present with all Oracle solution and is not specific to the Chainlink price feeds. In order to mitigate this risk, the Mento Protocol has implemented onchain circuit breakers that automatically pause the protocol if the reported data is outside of a predefined threshold. As well as our onchain trading limits, which limit the trading bandwidth.

## Useful Links

- [cCOP Proposal Forum Post](https://forum.celo.org/t/launch-of-ccop-colombia-s-first-decentralized-stablecoin/9211)
- [Mento Core Contracts](https://github.com/mento-protocol/mento-core)
- [Mento Docs](https://docs.mento.org)
46 changes: 46 additions & 0 deletions CGPs/cgp-0150/mainnet.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
[
{
"contract": "SortedOracles",
"address": "0xefB84935239dAcdecF7c5bA76d8dE40b077B7b33",
"function": "addOracle",
"args": [
"0x32ABF1cBdFdcD56790f427694be2658d4B1A83bC",
"0x5926F76D43Ce2D778880226b3C4e7156C8Ece99e"
],
"value": "0"
},
{
"contract": "SortedOracles",
"address": "0xefB84935239dAcdecF7c5bA76d8dE40b077B7b33",
"function": "setTokenReportExpiry",
"args": ["0x32ABF1cBdFdcD56790f427694be2658d4B1A83bC", "360"],
"value": "0"
},
{
"contract": "SortedOracles",
"address": "0xefB84935239dAcdecF7c5bA76d8dE40b077B7b33",
"function": "addOracle",
"args": [
"0x0196D1F4FdA21fA442e53EaF18Bf31282F6139F1",
"0x783F947126Adb7646c2A459B867f5B526D2E6603"
],
"value": "0"
},
{
"contract": "SortedOracles",
"address": "0xefB84935239dAcdecF7c5bA76d8dE40b077B7b33",
"function": "setTokenReportExpiry",
"args": ["0x0196D1F4FdA21fA442e53EaF18Bf31282F6139F1", "360"],
"value": "0"
},
{
"contract": "SortedOracles",
"address": "0xefB84935239dAcdecF7c5bA76d8dE40b077B7b33",
"function": "setEquivalentToken",
"args": [
"0x8A567e2aE79CA692Bd748aB832081C45de4041eA",
"0x32ABF1cBdFdcD56790f427694be2658d4B1A83bC"
],
"value": "0"
}
]
Loading