martinkrung / curve-dao-contracts-lido

MIT License
0 stars 0 forks source link

curve-dao-contracts

Vyper contracts used in the Curve Governance DAO.

Overview

Curve DAO consists of multiple smart contracts connected by Aragon. Interaction with Aragon occurs through a modified implementation of the Aragon Voting App. Aragon's standard one token, one vote method is replaced with a weighting system based on locking tokens. Curve DAO has a token (CRV) which is used for both governance and value accrual.

View the documentation for a more in-depth explanation of how Curve DAO works.

Testing and Development

Dependencies

Setup

Install python3 from scratch:

wget https://www.python.org/ftp/python/3.8.18/Python-3.8.18.tgz
tar zxvf Python-3.8.18.tgz
sudo cp -r Python-3.8.18 /usr/bin
cd /usr/bin/Python-3.8.18/
sudo ./configure --enable-loadable-sqlite-extensions
sudo make
sudo make install
make clean

Next, clone the repo, create and initialize a Python virtual environment.

git clone https://github.com/curvefi/curve-dao-contracts.git
cd curve-dao-contracts
python3.8 -m venv .venv
source .venv/bin/activate

Then install the developer dependencies:

pip install -r requirements.txt
# upgrade brownie to 1.19.3 avoid this bug https://github.com/eth-brownie/brownie/issues/1118
pip install --upgrade eth-brownie

Install ganache-cli:

npm install

Running the Tests

The test suite is split between unit and integration tests. To run the entire suite:

brownie test

To run only the unit tests or integration tests:

brownie test tests/unitary
brownie test tests/integration

use environment variables for api keys

activate

source .env

see .env-sample

Deployment

See the deployment documentation for detailed information on how to deploy Curve DAO.

Audits and Security

Curve DAO contracts have been audited by Trail of Bits and Quantstamp. These audit reports are made available on the Curve website.

There is also an active bug bounty for issues which can lead to substantial loss of money, critical bugs such as a broken live-ness condition, or irreversible loss of funds.

Resources

You may find the following guides useful:

  1. Curve and Curve DAO Resources
  2. How to earn and claim CRV
  3. Voting and vote locking on Curve DAO

Community

If you have any questions about this project, or wish to engage with us:

License

This project is licensed under the MIT license.