JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 74
  • Score
    100M100P100Q96410F
  • License GPL-3.0-only

Official Git Consensus contracts, written in Solidity.

Package Exports

  • @git-consensus/contracts
  • @git-consensus/contracts/build/scripts/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@git-consensus/contracts) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Git Consensus

Git Consensus Contracts

The Git Consensus Protocol enables distributed governance for Git projects. This repository serves as the location for the Solidity contract interfaces and implementations.

 

💡 Motivation

📖 Docs

Questions

 

Developer Guide

This is a modern Ethereum contract repository for Solidity contracts. It combines two extremely powerful frameworks:

These also offer some great tools for some advanced things like contract debugging, deployment, gas measurements, etc.

Setup

Clone the repository:

git clone https://github.com/git-consensus/contract.git && cd contracts

Install Node.js / NPM:

npm install --global npm

Install Yarn:

npm install --global yarn

Build Node dependencies (/node_modules/):

yarn install

Foundry

First run the command below to get foundryup, the Foundry toolchain installer:

curl -L https://foundry.paradigm.xyz | bash

Then, in a new terminal session or after reloading your PATH, run it to get the latest forge and cast binaries:

foundryup

Advanced ways to use foundryup, and other documentation, can be found in the foundryup package. Foundry is a blazing fast, portable and modular toolkit for Ethereum application development. It consists of:

  • Forge: Library for Unit / Fuzz testing written in Solidity (see /contracts/test).
  • Cast: Library for interacting with a live Ethereum JSON-RPC compatible node, or for parsing data. A swiss army knife for interacting with EVM smart contracts, sending transactions and getting chain data.

Need help getting started with Foundry? Read the 📖 Foundry Book

Hardhat

Hardhat is an Ethereum development environment for professionals. We use the Hardhat Network for Integration testing which written in Typescript. It uses Ethers.js and Mocha/Chai. See /integration/.

On Hardhat's website you will find:

Do Things

Finished Setup?

Run some unit tests with Forge:

forge test

Build contract artifacts and run integration tests with Hardhat:

yarn test

Deploy to Ropsten network:

Create a .env file matching the variables seen in .env.example

Getting fully prepared may involve getting a INFURA_API_KEY by signing up, and getting some test ETH on your target network via a facet.

Then run:

yarn deploy --network ropsten

In general, please do your best to always keep this repository beautiful! ❤️

Future

  • ENS Compatibility
  • Remove OpenZepplin Upgradability on Token/Governor for gas performance increase
  • Transfer() instead of Mint()

Licensing

The code in this project is licensed under the is licensed under the GNU General Public License v3.