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
- python3 version 3.6 or greater, python3-dev
- vyper version 0.2.4
- brownie - tested with version 1.14.6
- brownie-token-tester - tested with version 0.2.2
- ganache-cli - tested with version 6.12.1
Setup
To get started, first create and initialize a Python virtual environment. Next, clone the repo and install the developer dependencies:
git clone https://github.com/curvefi/curve-dao-contracts.git
cd curve-dao-contracts
pip install -r requirements.txt
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
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:
Community
If you have any questions about this project, or wish to engage with us:
License
This project is licensed under the MIT license.