/sablier

Decentralised app for continuous salaries on Ethereum

Primary LanguageJavaScriptGNU General Public License v3.0GPL-3.0

Sablier is a decentralised app for continuous salaries on Ethereum. Read this article to find out more about our mission. For a demo, see this video.

Styled with Prettier Commitizen Friendly License: LGPL v3


Warning 🚨

Please take note that this is experimental, beta software and is provided on an "as is" and "as available" basis. We do not give any warranties and will not be liable for any loss, direct or indirect through continued use of this codebase.

Packages 📦

Sablier is maintained as a monorepo with multiple sub packages. Please find a comprehensive list below.

Deployed Packages

Package Version Description
@sablier/dev-utils npm Dev utils to be shared across Sablier projects and packages
@sablier/payroll npm Payroll dapp contracts
@sablier/protocol npm Solidity smart contracts & tests

Private Packages

Package Description
@sablier/eslint-config Eslint config
@sablier/frontend Frontend app
@sablier/landing Landing page

Usage ⚒️

If you simply want to check out the beta dapp, you should head to beta.sablier.app!

If you want to run it locally:

$ cd packages/frontend
$ yarn install && yarn build

If you want to test Sablier on Rinkeby, make sure to create a .env file and mirror the contents of .env.example. In that file, you can also include any other variables and they will be set in process.env.

Finally:

$ yarn run start

You will also need some testnet DAI, which you can get by calling the mint method of this contract.

For all other commands, check out the contribution guide below.

Contributing 🙋‍♀️

We highly encourage participation from the community to help shape the development of Sablier. If you are interested in contributing or have any questions, please ping us on Twitter.

We use Yarn as a dependency manager and Truffle as a development environment for compiling, testing, and deploying our contracts. The contracts were written in Solidity.

Requirements

  • yarn >=1.15.2
  • truffle >= 5.0.19
  • solidity >=0.5.0 <0.6.0

Pre Requisites

Make sure you are using Yarn >=1.15.2. To install using homebrew:

$ brew install yarn

Then install dependencies:

$ yarn install

Watch

To re-build all packages on change:

$ yarn watch

Clean

To clean all packages:

$ yarn clean

To clean a specific package:

$ PKG=@sablier/protocol yarn clean

Lint

To lint all packages:

$ yarn lint

To lint a specific package:

$ PKG=@sablier/protocol yarn lint

Test

To run all tests:

$ yarn test

To run tests in a specific package:

$ PKG=@sablier/protocol yarn test