RigoBlock Monorepo
Branch: master
Clone or download
slyfox42 Fix potential security vulnerabilities (#645)
* updated webpack-dev-server and serve

* updated non working version of serve
Latest commit ea4a326 Jan 29, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Update monorepo for public release (#638) Jan 16, 2019
.github added label for data collector (#548) Oct 30, 2018
guides Improved API documentation (#649) Jan 23, 2019
packages Fix potential security vulnerabilities (#645) Jan 29, 2019
.dockerignore
.eslintrc Api overhaul (#107) May 4, 2018
.gitignore
.nvmrc
CONTRIBUTING.md Improved API documentation (#649) Jan 23, 2019
LICENSE
README.md Better Root Readme package descriptions (#643) Jan 17, 2019
lerna.json
package.json
yarn.lock

README.md

RigoBlock

CircleCI Standard JS code style: prettier

Packages

Package Description
ĐApp RigoBlock Decentralized App v2 (currently frozen)
API TypeScript API to interact with our smart contracts
Contracts RigoBlock solidity smart contracts & tests
Deployer Tool for smart contracts compilation and deployment
Ganache Bootstrap Bootstrapping package to deploy smart contracts and seed Ganache
Exchange Connector API to interact with token exchanges
Stats RigoBlock pools statistics collection
Data Collector Ethereum tokens data collection system

Contributing

Installation

Ubuntu pre-requisites:

apt-get install build-essential libusb libudev-dev

Install nvm and use the correct node version

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

nvm use

If you are having issues following this step check out nvm's documentation

Install yarn

npm i -g yarn

Install lerna using yarn and the frozen lockfile option, so as not to accidentally update packages and break the build

yarn --frozen-lockfile

Bootstrap all packages and install all their dependencies

yarn bootstrap

Build all packages in order. Ganache needs to be launched first as it is required for our contracts to be compiled. Optionally you can open the Ganache client instead of using the CLI.

npx lerna run --loglevel silent --scope @rigoblock/dapp ganache &> /dev/null &
yarn build
kill %1

Linting

Lint all packages

yarn lint

Publishing packages

To publish the packages in the monorepo to NPM you need to create a new branch and let lerna do the job.

⚠️ Make sure to start from a clean-state ganache when publishing! Otherwise staging won't be able to connect to the smart contracts deployed on ganache

git checkout master
git checkout -b feature/publish-# # Use an incremental number
git push -u origin feature/publish-#
yarn build
npx lerna publish

Lerna will ask you for new versions and:

  • Update package version
  • Update packages that depend on that package
  • Commit
  • Tag the current commit with package@version
  • Publish to NPM
  • Push to Github

So at the end you'll need to create a PR with your feature/publish-# branch and merge it to master in order to tag properly the main branch.