Vyper contracts used in the Curve Governance DAO.
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.
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
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
activate
source .env
see .env-sample
See the deployment documentation for detailed information on how to deploy Curve DAO.
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.
You may find the following guides useful:
If you have any questions about this project, or wish to engage with us:
This project is licensed under the MIT license.