The repository is home to DAOHQ's various contracts that have been built in house.
In order to ensure security of our contracts and full understanding of their functionality the following development process should be followed:
- A new Truffle project is created. Initial contract(s) is written according to requirements
- Unit tests are written with Truffle-mocha framework with the following minimal requirement:
- A description of each test
- Each external function includes > 1 instance in unit tests
- Each path in each function is tested at least 1 time(ex a function with
require(msg.sender == owner)
should test both functionality and a != ownerpath) - At least a 1:1 unit test to contract lines of code
- When the contracts and test have been iterated to be eligible for deployment the following validations should occur:
- Another member of DAOHQ should approve the list of unit tests(via descriptions)
- Another member of DAOHQ should analyze the contract for sanity checks and security. *It's understood that other members may need a walkthrough. This audit can occur via a call/meeting
- Reviewing member(s) from (3) commit unit test and contract files with an
//APPROVED
comment. - After findings from (3) has been addressed and files are approvedd contract may be deployed to mainnet(s)