Skip to content
forked from joincivil/Civil

The Main Monorepo and entry-point of all things Civil

Notifications You must be signed in to change notification settings

ajesse11x/Civil

 
 

Repository files navigation

Civil Logo


Civil is a decentralized and censorship resistant ecosystem for online Journalism. Read more in our whitepaper.

WIP Civil DApp - Read Documentation and Interact with Contracts and tools at our DApp, hosted for your convenience. This DApp and associated contracts are a Work In Progress and contracts are deployed on the Rinkeby testnet. If you would like some test CVL to try out the DApp, please ask in our Gitter room and we can send you some.

This repository contains all of the open-source Civil tools and packages written in Typescript. We hope that those tools will be useful for creation of interesting applications on top of the ecosystem as well as be useful in any project in the Ethereum space.

Coverage Status CircleCI Gitter chat Telegram chat

Published packages

Package NPM Description
@joincivil/core npm link JS library for interacting with Civil ecosystem
@joincivil/tslint-rules npm link Linting rules for Civil's Typescript packages
@joincivil/utils npm link Utilities shared between Civil projects used during runtime
@joincivil/editor npm link Editor for Civil-formatted articles and content
@joincivil/typescript-types npm link Types used in multiple Civil packages
@joincivil/typescript-typings npm link Typescript type roots for external projects and internal modifications
@joincivil/ethapi npm link An abstraction of Ethereum communication

Private packages

Package Description
@joincivil/contracts Smart-contracts needed for the Civil's protocol
@joincivil/dapp DApp for interacting with the Civil contracts
@joincivil/dev-utils Utilities needed for the proper working of the mono-repo packages, builds and tests
@joincivil/debug-ui WIP: Minimal website to monitor, observe and debug the protocol and all the utilities and packages of the ecosystem

Contributing

Civil's ecosystem is free and open-source, we're all part of it and you're encouraged to be a part of it with us. Best place to start hacking would be to use the @joincivil/core and build some application on top of the protocol.

If you're itching to dwelve deeper inside, help wanted and good first issue labels are good places to get started and learn the architecture.

Install dependencies

This project is using yarn workspaces. They require yarn >= 1.0 to work properly.

Set up all dependencies:

yarn install

Build

Build all packages in the monorepo:

yarn build

Turn on file-watch mode and rebuild most of the files on change:

yarn watch

Lint

Check all packages for linting errors:

yarn lint

Testing

Tests in Civil's ecosystem require the use of Ganache, Ethereum's development test network, spin it in a seperate terminal:

yarn ganache

some of the packages - most notably @joincivil/core depend on already deployed singletons. Our ganache is set-up to be deterministic and thus when you migrate contracts locally, singletons will have the same addresses as the artifacts.

cd packages/contracts
yarn migrate --network=ganache

Finally run all the tests in the main repository:

yarn test

Run commands in all packages

Civil's monorepo is using lerna to easily manage the monorepo structure. Two helper yarn scripts are provided for your convenience.

To run the supported lerna version:

yarn lerna

To run scripts in all packages in the monorepo:

yarn lerna:run

Cleaning the state

To refresh the repository state as much as possible run:

yarn clean && yarn lerna clean --yes && rm -r node_modules && yarn install

🐙 was here.

About

The Main Monorepo and entry-point of all things Civil

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 98.2%
  • HTML 1.3%
  • JavaScript 0.5%