Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update README.md #9

Merged
merged 6 commits into from
Jan 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions .github/workflows/pull-request.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: CI Pull Request

on:
pull_request:
branches: [main]

jobs:
contract-tests:
runs-on: ubuntu-latest
steps:
- name: "Check out the repo"
uses: "actions/checkout@v4"

- name: Install Node.js
uses: actions/setup-node@v3
with:
node-version: "18.19.0"

# did not improve speed in this case.
# - name: "Cache pnpm modules"
# uses: actions/cache@v2
# with:
# path: |
# ~/.pnpm-store
# artifacts
# **/node_modules
# key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }}
# restore-keys: |
# ${{ runner.os }}-pnpm-

- name: "Install pnpm"
run: "npm install -g pnpm"
- name: "setup packages"
run: "pnpm install"
- name: "Run tests"
run: "pnpm test"
19 changes: 17 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@

The `SuperQuorumGovernor` smart contract is an innovative extension of the standard governance model provided by OpenZeppelin. It introduces the concept of "Super Quorum" in governance proposals. This higher quorum threshold is designed to ensure that only proposals with substantial backing and consensus are approved, particularly in critical decision-making scenarios. The contract is developed in Solidity ^0.8.20 and is an integration of OpenZeppelin's governance contracts, including Governor, GovernorSettings, GovernorCountingSimple, GovernorStorage, GovernorVotes, GovernorVotesQuorumFraction, and GovernorTimelockControl.

## Upgradeable Verision included

There are two folders for both a regular version that deploys with a constructore function, and a second version designed to be used in a clone factory that utilizes an initializer.

## Goal of the New Addition

The `GovernorVotesSuperQuorumFraction` module adds a robust layer to the governance process by implementing a super quorum threshold, which is significantly higher than the standard quorum. This addition is crucial for enhancing governance security and decision-making quality, especially for critical or sensitive proposals within decentralized organizations or protocols. By setting a higher consensus requirement, it ensures that critical decisions are made with a broader agreement among stakeholders, adding an extra layer of security and stability to the governance process.
Expand Down Expand Up @@ -47,9 +51,20 @@ npx hardhat test
npm add @tallyxyz/super-quorum
```

Import the contract as:
Import the standard contract:

```solidity
import "@tallyxyz/contracts/standard/SuperQuorumGovernor.sol";
// as extension:
import "@tallyxyz/contracts/standard/extension/GovernorVotesSuperQuorumFraction.sol";
```

Using the upgradeable version:
```solidity
import "@tallyxyz/contracts/extension/GovernorVotesSuperQuorumFraction.sol";
import "@tallyxyz/contracts/upgradeable/SuperQuorumGovernorUpgradeable.sol";
// as extension:
import "@tallyxyz/contracts/upgradeable/extension/GovernorVotesSuperQuorumFractionUpgradeable.sol";
```

import the super governor !

Loading