Git Product home page Git Product logo

gov-deployer's Introduction

Theme image for repository

OZGovernor

About

OZGovernor is a comprehensive governance contract developed as an extension of OpenZeppelin by Tally developers. This contract adds advanced functionalities for voting, timelock control, and quorum implementation, providing a sophisticated governance solution for decentralized autonomous organizations (DAOs).

๐Ÿ“— Overview

This repository contains tasks and scripts for the effortless deployment and testing of OZ Governance and its DAO smart contracts on Ethereum networks. Dive deeper into OZGovernor's functionalities with our extensive technical documentation, including its unique features and deployment instructions.

Key Features:

  • Enhanced Voting Mechanics: Detailed explanation of the voting process, including token-based voting and proposal lifecycle.
  • Timelock Management: Insights into the timelock mechanism and how it adds a layer of security and transparency.
  • Quorum Requirements: Description of quorum functionalities, ensuring democratic and fair governance.

Contract Overview

OZGovernor integrates various extensions from OpenZeppelin for robust governance features, including:

  • OZGovernor: Main governance contract for proposal management.
  • ERC20Token: Token used for voting, empowering token holders with governance rights.
  • TimelockController: Implements a delay mechanism for operational security.

For comprehensive contract details, visit our documentation.

Interested in premium DAO solutions? Check out Tally's premium features.

๐Ÿง Using it with Tally

Steps for Deployment and Integration:

  1. Set up the environment using the instructions in installation.
  2. Customize deploy.config.ts for your DAO.
  3. Deploy contracts as detailed in deploy method.
  4. Validate your contract as per validation guidelines.
  5. Mint and distribute tokens to DAO members.
  6. Remove minting permissions post-distribution.
  7. Add your DAO to Tally using this link.

๐Ÿ’ป Getting Started

Installation

git clone https://github.com/withtally/gov-deployer.git
cd gov-deployer
pnpm install
cp .env.example .env
# Configure .env as needed (e.g., node RPCs)
# You can also set all the values 
# npx hardhat vars set INFURA_API_KEY

Additional Commands

pnpm clean
pnpm test
npx hardhat compile

Pre-Requisites

  • Node.js and PNPM
  • Git

Deploying

Configure deployment parameters in deploy.config.ts.

# Define network from the names in hardhat.config.ts
pnpm deployc --network sepolia
# For local testing as a dry run, do not specify the network
pnpm deployc

Validating Contract

Post-deployment, use the output commands for contract validation. Ensure Etherscan API KEY is in .env.

Example output:

quorum numerator: 30 
vote extension: 7200 

deploying "OZGovernor" (tx: 0xc364cf1527fd3fb9d04cc2b53ec1099bd9f77dc745d6932060a06b4fdb2f98f9)...: deployed at 0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9 with 4800366 gas

OZ Governor contract:  0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9

npx hardhat verify --network hardhat 0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9 "EXAMPLE GROUP" 0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9 0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512 7200 50400 0 30 7200

Testing

Run the tests using:

pnpm test

๐Ÿšจ Disclaimer

Use of OZGovernor is at your own risk. Tally is not liable for any damages or losses. Intended for testing and reference only.

๐Ÿค Contributions

We welcome contributions! Refer to our contributing guidelines for details.

๐Ÿ“š Changelog

Stay updated with changes and improvements in our changelog.

๐Ÿ“– FAQs

Find answers to common questions in our FAQ section.

๐Ÿ–ผ๏ธ Diagrams and Visuals

Explore governance workflows through diagrams in our visual guide.

โš–๏ธ License

The whole repo and it's contracts are released under MIT license.

For details, see LICENSE.

gov-deployer's People

Contributors

afa7789 avatar devzl avatar atisheksingh avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.