Awesome Open Source
Awesome Open Source

The protocol for real-time finance on Ethereum..

Built with OpenZeppelin Coverage Status Styled with Prettier Commitizen Friendly License: LGPL v3


Packages 📦

We're maintaining this as a monorepo with multiple sub packages.

Deployed Packages

Package Description
@sablier/dev-utils Dev utils to be shared across Sablier projects and packages
@sablier/payroll Proxy used chiefly in our web interfaces
@sablier/protocol Money streaming protocol
@sablier/shared-contracts Smart contracts to be shared across Sablier projects and packages

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

Kovan, Rinkeby and Ropsten

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

Goerli

Name Description Address
CTokenManager Whitelist and discard cTokens 0x3b7b1eB1B9C65Db580f673d7599da69Bc1A26338
Payroll Proxy used in our web interfaces 0x8eB93647490DF9989295461AB2AcdEDdCCA84781
Sablier Money streaming engine 0x590b3974533141a44a89033deEcf932F52fcFDea

Usage ⚒

To compile the smart contracts, bootstrap the monorepo and open the package you'd like to work on. For example, here are the instructions for @sablier/protocol:

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

If you are looking for a version of Sablier that is stripped out of the integration with cTokens, check out sablier-smooth-contracts.

Finally, if you simply want to use our apps, 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.

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 Discord.

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

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
javascript (70,368
blockchain (840
ethereum (745
solidity (294
smart-contracts (179
truffle (56