The protocol for real-time finance on Ethereum..
We're maintaining this as a monorepo with multiple sub 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 |
Find the addresses for our smart contracts below. They have been audited by Quantstamp and ConsenSys Diligence.
Name | Description | Address |
---|---|---|
CTokenManager | Whitelist and discard cTokens | 0x342A6596F50b4Db7c3246C0F4eFb1f06843d7405 |
Payroll | Proxy used in our web interfaces | 0xbd6a40Bb904aEa5a49c59050B5395f7484A4203d |
Sablier | Money streaming engine | 0xA4fc358455Febe425536fd1878bE67FfDBDEC59a |
Name | Description | Address |
---|---|---|
CTokenManager | Whitelist and discard cTokens | 0xEE5dfDf2e98FdC572786b9E5649cB8Cc93D47a19 |
Payroll | Proxy used in our web interfaces | 0x7ee114C3628Ca90119fC699f03665bF9dB8f5faF |
Sablier | Money streaming engine | 0xc04Ad234E01327b24a831e3718DBFcbE245904CC |
Name | Description | Address |
---|---|---|
CTokenManager | Whitelist and discard cTokens | 0x3b7b1eB1B9C65Db580f673d7599da69Bc1A26338 |
Payroll | Proxy used in our web interfaces | 0x8eB93647490DF9989295461AB2AcdEDdCCA84781 |
Sablier | Money streaming engine | 0x590b3974533141a44a89033deEcf932F52fcFDea |
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.
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.
- yarn >=1.17.3
- truffle >= 5.0.35
- solidity 0.5.11
Make sure you are using Yarn >=1.17.3 To install using homebrew:
$ brew install yarn
Then install dependencies:
$ yarn install
To re-build all packages on change:
$ yarn watch
To clean all packages:
$ yarn clean
To clean a specific package:
$ PKG=@sablier/protocol yarn clean
To lint all packages:
$ yarn lint
To lint a specific package:
$ PKG=@sablier/protocol yarn lint
To run prettier on all packages:
$ yarn prettier
Prettier cannot be run on individual packages.
To run all tests:
$ yarn test
To run tests in a specific package:
$ PKG=@sablier/protocol yarn test