/sablier

The protocol for real-time finance on the Ethereum blockchain

Primary LanguageJavaScriptGNU General Public License v3.0GPL-3.0

Sablier is the protocol for real-time finance on Ethereum. Read this article to find out more about what we're up to.

Coverage Status Styled with Prettier Commitizen Friendly License: LGPL v3


Packages 📦

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

Deployed Packages

Package Version Description
@sablier/payroll npm Payroll proxy
@sablier/protocol npm Money streaming protocol
@sablier/shared-contracts npm Smart contracts to be shared across Sablier projects and packages

Private Packages

Package Description
@sablier/dev-utils npm

Contracts 📝

Find the addresses for our smart contracts below. They have been audited by Quantstamp and ConsenSys Diligence.

Ethereum Mainnet

Name Description Address
CTokenManager Whitelist and discard cTokens 0x342A6596F50b4Db7c3246C0F4eFb1f06843d7405
Payroll Proxy used in our web interfaces 0xbd6a40Bb904aEa5a49c59050B5395f7484A4203d
Sablier Money streaming engine 0xA4fc358455Febe425536fd1878bE67FfDBDEC59a

Ethereum Testnets

These are Goerli, Kovan, Rinkeby and Ropsten. Each contract has the same address on all testnets.

Name Description Address
CTokenManager Whitelist and discard cTokens 0xEE5dfDf2e98FdC572786b9E5649cB8Cc93D47a19
Payroll Proxy used in our web interfaces 0x7ee114C3628Ca90119fC699f03665bF9dB8f5faF
Sablier Money streaming engine 0xc04Ad234E01327b24a831e3718DBFcbE245904CC

Usage ⚒️

If you just want to use the dapps, head to pay.sablier.finance to create streams and app.sablier.finance to withdraw from streams. You'll need an Ethereum wallet and some ERC20 tokens to interact with the dapps.

To check out and compile the smart contracts, bootstrap the monorepo and head to each individual package as presented above. For example, these are the instructions for @sablier/protocol:

$ yarn run bootstrap
$ cd packages/protocol
$ truffle compile --all
$ truffle migrate --reset --network development

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, ping us on Twitter or Telegram;

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.17.3
  • truffle >= 5.0.35
  • solidity 0.5.11

Pre Requisites

Make sure you are using Yarn >=1.17.3 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

Prettier

To run prettier on all packages:

$ yarn prettier

Prettier cannot be run on individual packages.

Test

To run all tests:

$ yarn test

To run tests in a specific package:

$ PKG=@sablier/protocol yarn test