Skip to content

🐷 M 💗 O 🎠 N 🌸 O 👾 R 🌸 E 🎠 P 💗 O 🐷

License

Notifications You must be signed in to change notification settings

karlfloersch/pigi

 
 

Repository files navigation


Plasma Group is an independent non-profit organization that's developing standards for plasma and beyond. PG is dedicated to the creation of an open plasma implementation that supports well designed standard data formats and interfaces for the greater Ethereum community.

@pigi is the Plasma Group monorepo. All of the core plasma group projects are hosted inside of the packages folder of this repository.

Packages

Package Version Description
@pigi/contracts npm Core Vyper contracts used for the PG plasma chain.
@pigi/core npm Core PG plasma chain client modules.
@pigi/plasma-js npm JS client library for interacting with PG plasma chains.
@pigi/predicates npm Predicate contracts & plugins..

Repo Status

Build Status Codacy Badge

Contributing

Welcome! If you're looking to contribute to the future of plasma, you're in the right place.

Contributing Guide and Code of Conduct

Plasma Group follows a Contributing Guide and Code of Conduct adapted slightly from the Contributor Covenant. All contributors must read through this guide before contributing. We're here to cultivate a welcoming and inclusive contributing environment, and every new contributor needs to do their part to uphold our community standards.

Requirements and Setup

Cloning the Repo

Before you start working on a Plasma Group project, you'll need to clone our GitHub repository:

git clone [email protected]:plasma-group/pigi.git

Now, enter the repository.

cd pigi

Node.js

Most of the projects in @pigi are Node.js projects. You'll need to install Node.js for your system before continuing. We've provided a detailed explanation of now to install Node.js on Windows, Mac, and Linux.

Note: This is confirmed to work on Node.js v11.6, but there may be issues on other versions. If you have trouble, please peg your Node.js version to 11.6.

Yarn

We're using a package manager called Yarn. You'll need to install Yarn before continuing.

Installing Dependencies

@pigi projects make use of several external packages.

Install all required packages with:

yarn install

Building

@pigi provides convenient tooling for building a package or set of packages.

Build all packages:

yarn run build

Build a specific package or set of packages:

PKGS=your,packages,here yarn run build

Linting

Clean code is the best code, so we've provided tools to automatically lint your projects.

Lint all packages:

yarn run lint

Lint a specific package or set of packages:

PKGS=your,packages,here yarn run lint

Automatically Fixing Linting Issues

We've also provided tools to make it possible to automatically fix any linting issues. It's much easier than trying to fix issues manually.

Fix all packages:

yarn run fix

Fix a specific package or set of packages:

PKGS=your,packages,here yarn run fix

Running Tests

@pigi projects usually makes use of a combination of Mocha (a testing framework) and Chai (an assertion library) for testing.

Run all tests:

yarn test

Run tests for a specific package or set of packages:

PKGS=your,packages,here yarn test

Contributors: remember to run tests before submitting a pull request! Code with passing tests makes life easier for everyone and means your contribution can get pulled into this project faster.

Acknowledgements

We'd like to give a big shoutout to 0x and Nest.js for inspiration about the best ways to design this monorepo. Please check out their respective repos (0x and Nest.js) if you're looking for other cool projects to work on 😊!

About

🐷 M 💗 O 🎠 N 🌸 O 👾 R 🌸 E 🎠 P 💗 O 🐷

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 95.8%
  • Python 3.9%
  • Other 0.3%