{"_id":"@blossom-labs/apps-superfluid","name":"@blossom-labs/apps-superfluid","dist-tags":{"latest":"0.0.1"},"versions":{"0.0.1":{"name":"@blossom-labs/apps-superfluid","version":"0.0.1","repository":{"type":"git","url":"git+https://github.com/BlossomLabs/superfluid-aragon-app.git"},"author":{"name":"Blossom Labs"},"license":"MIT","bugs":{"url":"https://github.com/BlossomLabs/superfluid-aragon-app/issues"},"homepage":"https://github.com/BlossomLabs/superfluid-aragon-app#readme","scripts":{"test":"hardhat test --network hardhat","compile":"hardhat compile","chain":"hardhat node","fork":"hardhat node --fork https://xdai-archive.blockscout.com","lint":"yarn lint:sol","lint:fix":"yarn lint:sol:fix","lint:sol":"solhint 'contracts/**/*.sol' && prettier -c 'contracts/**/*.sol'","lint:sol:fix":"prettier --write \"contracts/**/*.sol\"","test:gas":"REPORT_GAS=true yarn test","coverage":"hardhat coverage","publish:major":"hardhat publish major","publish:minor":"hardhat publish minor","publish:patch":"hardhat publish patch","start":"buidler start"},"dependencies":{"@aragon/apps-agent":"^2.0.0-rc.1","@aragon/os":"4.4.0"},"devDependencies":{"@1hive/hardhat-aragon":"^0.1.0","@aragon/buidler-aragon":"^0.2.0","@nomiclabs/buidler":"^1.3.0","@nomiclabs/buidler-etherscan":"^1.3.0","@nomiclabs/buidler-truffle5":"^1.3.0","@nomiclabs/buidler-web3":"^1.3.0","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-truffle5":"^2.0.0","@nomiclabs/hardhat-waffle":"^2.0.1","@nomiclabs/hardhat-web3":"^2.0.0","@superfluid-finance/ethereum-contracts":"^1.0.0-rc.8","@superfluid-finance/js-sdk":"^0.5.8","@tenderly/hardhat-tenderly":"^1.0.13","@typechain/ethers-v5":"^8.0.5","@typechain/hardhat":"^3.0.0","@types/chai":"^4.2.22","@types/mocha":"^9.0.0","@types/node":"^16.11.7","babel-eslint":"^10.1.0","chai":"^4.2.0","dotenv":"^9.0.2","eslint":"^5.13.0","eslint-config-prettier":"^6.5.0","eslint-config-standard":"^14.1.0","eslint-plugin-import":"^2.18.2","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.0.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-standard":"^4.0.1","ethereum-waffle":"^3.4.0","ethers":"^5.5.2","hardhat":"^2.6.5","hardhat-deploy":"^0.9.3","hardhat-gas-reporter":"^1.0.4","lodash.isequal":"^4.5.0","prettier":"^2.4.1","prettier-plugin-solidity":"^1.0.0-beta.19","solhint":"^3.3.6","solhint-plugin-prettier":"^0.0.5","ts-generator":"^0.1.1","ts-node":"^10.4.0","typechain":"^6.0.2","typescript":"^4.4.4","web3":"^1.2.0"},"gitHead":"dbb7dcf235c0a7bc958beb3d1476f4666f408a3d","description":"Superfluid is an Aragon App that enables an organization to interact with the [Superfluid protocol](https://www.superfluid.finance/home). It allows a DAO to stream their funds by using Superfluid's [Constant Flow Agreement](https://docs.superfluid.finance","_id":"@blossom-labs/apps-superfluid@0.0.1","_nodeVersion":"16.4.2","_npmVersion":"7.18.1","dist":{"integrity":"sha512-eyD2jJI39Ka1nuCsBrtQNxEh1ixPKDRKKPz78/EYLuKft4HeOaymMIoj9kcM2FG7B1yhXmZtCdlMvjuHUD3vJQ==","shasum":"ee5dff4a461adeda38dc523aeb2b92f2b240432c","tarball":"https://registry.npmjs.org/@blossom-labs/apps-superfluid/-/apps-superfluid-0.0.1.tgz","fileCount":26,"unpackedSize":121907,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICXUBa5ATWEr74bc7n0v3J9Y+Rr4ZyWZbbklqjNmxlDWAiEAi4ZX+ElvV7+tarkOK8SiFbxk5J4PoH0HO3zrqDWoie8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiYYlqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrp0Q/+P3MRvbmzlfGiwm3PTstV1kYSsC2He+ta2EJDZMUANlrBs5hP\r\nGYZ7JpCwT6cm0KhcpWRgK1Cnq45ZKsC5J7vydzHh+Y2P163cvwRCAp2MAErI\r\nSClGevFmRSCcenA+7P4Kclo+I4tstU/fBq49OOp7r047NtXqU0sGjql8yO5U\r\nVTI+3zvAldZNBAZSOfjnpq2nFB1Ybt0NwaiTm54zs2B3GpG+qjTF2xct2MGv\r\nak02cos9Z5e2EkJmClfuaHpfLhhEDEarz23qQEULOv/t6OmBX3HdhbC62bim\r\ngDEx17UIAESInULSfuN5kXlDZWwu6oHPDrViIeNR7Zrv1x3o83zzLf8fTvbI\r\nZRygokHGtfiyT9pd/WGFZLk2nGwCSf0S35gTl2MY3dgJasbTjKlD/kuxFJNa\r\nON/dG5BSgo+6B7LuuYEmbf3ylk3r2bKFVPt8XcTGq58csHnLvtb86P8GkGgR\r\nR7JoYdhnzlF1omAVdAw9lmtisgqhCAmKRM6aZv9bjeQWPkof1UFRKqrqPHks\r\nODfmgjaZag61Zxms9qL8T6y0FUx/59p1bATNZjytdD0V5I16KR/22lpTNRAl\r\nGCA0cdYAte23/zjTD5bJuM6KARZ2Mq03qYNE5rYDFPrr1bvzHCI7x6VUrO2h\r\nZ/IpLmRYDLhb1NccdKw7NOUOHEsZVYFVLFk=\r\n=TnwJ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"gabrielg","email":"gabrielpk.18@gmail.com"},"directories":{},"maintainers":[{"name":"pcolombo","email":"paulo.colombo@pm.me"},{"name":"gabrielg","email":"gabrielpk.18@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apps-superfluid_0.0.1_1650559338741_0.061161384044372324"},"_hasShrinkwrap":false}},"time":{"created":"2022-04-21T16:42:18.701Z","0.0.1":"2022-04-21T16:42:18.911Z","modified":"2022-04-21T16:42:19.039Z"},"maintainers":[{"name":"pcolombo","email":"paulo.colombo@pm.me"},{"name":"gabrielg","email":"gabrielpk.18@gmail.com"}],"description":"Superfluid is an Aragon App that enables an organization to interact with the [Superfluid protocol](https://www.superfluid.finance/home). It allows a DAO to stream their funds by using Superfluid's [Constant Flow Agreement](https://docs.superfluid.finance","homepage":"https://github.com/BlossomLabs/superfluid-aragon-app#readme","repository":{"type":"git","url":"git+https://github.com/BlossomLabs/superfluid-aragon-app.git"},"author":{"name":"Blossom Labs"},"bugs":{"url":"https://github.com/BlossomLabs/superfluid-aragon-app/issues"},"license":"MIT","readme":"# Superfluid Aragon App <a href=\"#\"><img align=\"right\" src=\".github/assets/blossom-labs.svg\" height=\"80px\" /></a>\n\nSuperfluid is an Aragon App that enables an organization to interact with the [Superfluid protocol](https://www.superfluid.finance/home). It allows a DAO to stream their funds by using Superfluid's [Constant Flow Agreement](https://docs.superfluid.finance/superfluid/docs/constant-flow-agreement) via an agent app that holds all the DAO's [Super Tokens](https://docs.superfluid.finance/superfluid/docs/super-tokens).\n\nThe Superfluid app acts as an interface between the Agent and the Superfluid protocol contracts, using the Agent to perform all the calls to the CFA.\n\n#### 🐲 Project Stage: Completed\n\nThe Superfluid app has been published to the `open.aragonpm.eth` registry on **Polygon**, **Rinkeby** and **xDAI** network.\n\nThe app's repo ens name is the following: `superfluid.open.aragonpm.eth`.\n\n![](.github/assets/superfluid-aragon-app.gif)\n\n## Demos\n\nHere you can find some demos to play with:\n\n- [Rinkeby demo](https://rinkeby.aragon.blossom.software/#/superfluiddemo/0xc6efd81d5d0438bd2c42bf34c3e3ec29442ede5e/).\n- [Polygon demo](https://polygon.aragon.blossom.software/#/superfluiddemo1/0x5cc834b60a4741a79ad2cd0d28d48a2e9c5e3aad/).\n- [xDAI demo](https://xdai.aragon.blossom.software/#/superfluiddemo/0x7569ca988796bd1511983fd9639360948a59ff49/).\n\n## Initialization\n\nTo initialized the app you'll need to set up the following parameters:\n\n* `_agent` The address of the Agent contract that is going to hold the Super Tokens.\n* `_host_` The address of the Superfluid host contract.\n* `_cfa_`  The address of the **constant flow agreement** contract.\n\n## Roles\n\nThe Superfluid app implements the following roles:\n* **MANAGE_STREAMS_ROLE**: Necessary to create, update, and delete constant flows.\n* **SET_AGENT_ROLE**: Necessary to change the agent if it's needed.\n\nThe app should have the following roles as well:\n* **SAFE_EXECUTE_ROLE**: It should be able to execute arbitrary code from the agent that holds the Super Tokens.\n* **TRANSFER_ROLE**: It should be able to transfer Super Tokens hold by the agent.\n\n## EVMcrispr installation script\n\nUse the following script on the [evmcrispr terminal](https://evm-crispr.blossom.software/#/terminal) to install the app on a DAO.\n\n```\nconnect <dao-address> <path>\ninstall superfluid.open:new agent <host-address> <cfa-address> \ngrant superfluid.open:new agent SAFE_EXECUTE_ROLE voting\ngrant superfluid.open:new agent TRANSFER_ROLE voting\ngrant voting superfluid.open:new MANAGE_STREAMS_ROLE voting\ngrant voting superfluid.open:new SET_AGENT_ROLE voting\n```\n\nYou can find the Superfluid contract addresses [here](https://docs.superfluid.finance/superfluid/protocol-developers/networks).\n\n## How to run locally\n\n1. Clone this repo:\n\n```sh \ngit clone https://github.com/BlossomLabs/superfluid-aragon-app.git\n\n```\n\n2. Install dependencies:\n\n```sh\nyarn\n\ncd app/\n\nyarn\n``` \n\n3. Go to the root folder and run the following:\n\n```sh\nyarn start\n```\n\n\nThis will do the following:\n\n* Start a local ganache blockchain and set up some accounts.\n* Deploy the AragonOS framework contracts.\n* Deploy the Superfluid framework contracts and a couple of Super Tokens.\n* Deploy an Aragon DAO and install on it an Agent app needed by the app.\n* Deploy the app, initialize it and set up its permissions as well as the agent ones.\n* Mint Super Tokens for the testing accounts.\n* Make an initial Super Token's deposit to the Agent.\n* Run a local Aragon Client\n* Build and deploy the app's front end.\n\n**Note:** To run this project you'll need a Node.js version between v12 and v15.\n\n## How to run tests\n\nThe contract tests require running a fork network, so you'll need to set up the following env variables: \n\n```\nHARDHAT_FORK_ID=<chain-id>\nHARDHAT_FORK=<archive-node-uri>\nHARDHAT_FORK_BLOCK_NUMBER=<blocknumber>\n```\n\nOnce you created the `.env` file you just need to run: `yarn test`.\n","readmeFilename":"README.md"}