Skip to content

DeltaVerseDAO/fractal-module-governor

 
 

Repository files navigation

Governor Module

Architecture

The Governor Module utilizes the MVD accessControl and moduleBase to deal with permissions.

GovernorModule.sol

The Governor Module contract contains the methods required to create proposal, vote on proposals with an votes enabled token, and execute this transaction on an accompanying DAO.

GovernorModuleFactory.sol

The Governor Factory Contract contains the methods needed to deploy a proxy that is pointed to an implementation on chain. It is important this contract inherits from the ModuleBaseFactory interface so that is compatible with the metaFactory contract in the MVD.

Local Setup & Testing

Clone the repository:

git clone ...

Lookup the recommended Node version to use in the .nvmrc file and install and use the correct version:

nvm install 
nvm use

Install necessary dependencies:

npm install

Add .env values replacing the private key and provider values for desired networks

cp .env.example .env

Compile contracts to create typechain files:

npm run compile

Run the tests

npm run test

Deploy Contract to

npx hardhat deploy --network <network>

Local Hardhat deployment

To deploy the base Fractal contracts open a terminal and run:

npx hardhat node

This will deploy the following contracts and log the addresses they were deployed to:

  • Governor Implementation
  • Timelock Implementation

About

Decent DAO fractal module governor controller

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 62.8%
  • Solidity 36.2%
  • Other 1.0%