Our project utilizes Superfluid to create a SuperValve and Pipe contracts which enables users to flow money through the SuperValve and allocate their flow amongst multiple existing yield generating vaults. The Pipe allows the flows to be aggregated and to interface with existing DeFi applications.
To get a local copy up and running follow these simple steps.
- Clone the repo
git clone https://github.com/0xdavinchee/piped-piper.git
- Install NPM packages
npm install
- Create a
.env
file and add the two following values:
MNEMONIC
: A mnemonic for accountsTEST_ACCOUNT_PRIVATE_KEY
: Private key for deployment.HOST_ADDRESS
: The address of the Superfluid host contract on the network you plan on deploying to.CFA_ADDRESS
: The address of the Superfluid Constant Flow Agreement V1 contract on the network you plan on deploying to.INFURA_API_KEY
: You can get this from https://infura.io by signing up for a free account.
To compile: npx hardhat compile
.
To run tests: npx hardhat test
.
To get test coverage: npx hardhat coverage
.
To deploy your smart contracts on a network, run npx hardhat deploy --network <NETWORK>
, you can select one of the networks defined in hardhat.config.ts
.
To use this with the front end cd
into the frontend
folder and run npm start
. Note: You will need to create a .env
file with REACT_APP_SUPER_VALVE_ADDRESS
which is the address of your SuperValve. You can choose to add more SuperValve's in the future by editing the VALVE_DATA
variable in PipedPiper.tsx
.
Distributed under the MIT License. See LICENSE
for more information.
Project Link: https://github.com/0xdavinchee/piped-piper