clrfund / clrfund-deployer Goto Github PK
View Code? Open in Web Editor NEWA GUI and other tools for deploying a new instance of clr.fund
License: GNU General Public License v3.0
A GUI and other tools for deploying a new instance of clr.fund
License: GNU General Public License v3.0
needed to deploy MACI
As an Admin I would like to deploy MACI Factory contract so that I may deploy MACI instances for each new funding round
As an admin I would like to start a new voting round so that I may collect money for my public goods.
As an Admin I would like to deploy Funding Factory contracts so that I may deploy funding instances for each new funding round
As an Admin I would like a way to request my tally.json from the coordinator so that I may finalize or cancel a funding round
As an Admin I would like to deploy a valid instance of IUserRegistry so that I may onboard my users to each new funding round
needed to deploy MACI Factory
As an Admin I would like to Finalize a funding round so that I may distribute funds according to the vote tally provided by the coordinator
needed to deploy MACI Factory
As an admin I would like to use SimpleRecipientRegistry or Kleros TCR as a Recipient registration method that satisfy IRecipientRegistry, so that I may have easy deploy options
As an admin I would like to connect to an arbitrary EVM network so that I may deploy contracts there
Assuming we use a subgraph to fetch data to the application, the subgraph and dependencies will need to be deployed to any network we support.
As an admin I would like to Contact the clr.fund team for help being my coordinator or be the coordinator myself, so that I may have easy deploy options
As an admin I would like to Set Signup and voting durations in Funding Factory Contract so that I may update the Signup and voting duration, in future funding rounds
As an admin I would like to transfer ownership of my MACI factory to my Funding Factory Contract so that I may update MACI factories in future funding rounds
As an Admin I would like to cancel a funding round so that I may distribute funds back to participants
As an admin I would like to make changes to my UI so that I may keep it up to date or fix errors/issues
As an Admin I would like to use/deploy a UI for my IUserRegistry so that I may manage users sign up on the Registry Contracts (Simple, BrightID, etc.)
Split into two stories
As an admin I would like to update the Address of the IRecipientRegistry contract my Funding Factory Contract uses so that I may update/patch IRecipientRegistry in future funding rounds
As an admin I would like to set the coordinator in the Funding Round Factory Contract so that I may update coordinator keys used in future funding rounds
As an admin I would like to connect to xDai so that I may deploy contracts there
As an Admin I would like to add theme customization to my clr.fund App instance so that I may incorporate my org's branding.
As an admin I would like to verify that I am deploying the latest versions of the contracts
A factory contract that deploys MACI and funding round factories, which are the two factory contracts that constitute an instance of clr.fund. While such a factory factory is not strictly necessary, it would
- facilitate a subgraph to support performant data fetching in clr.fund app instances
- make it easy to provide a web-based instance-deployment UI
- give admins confidence that they are deploying the correct version of the requisite factory contracts.
Block size limits. With all code deployed in one contract, a factory factory may be too big to fit into a single block. However, we could get around this constraint with a few approaches:
As an admin I would like to deploy a valid instance of IRecipientRegistry so that I may onboard new recipients in each funding round
As an admin I would like to use/deploy a UI for my funding round so that I may give users a way to easily donate to recipients
As an Admin I would like to use/deploy a UI for my IRecipientRegistry so that I may manage recipient sign up on the Registry Contracts (Kleros, website, etc.)
Split user story
For longer rounds, contributions can in theory be converted to a yield-bearing asset to grow the total funding per round. clrfund can use any ERC20 for the round token -- including deposit tokens like cTokens, aTokens, or yearn vault tokens -- so user contributions made in "raw" stablecoins could be converted into the yield-bearing round token, potentially via a zap.
On the deployer side, an option for admins to select the desired yield-bearing asset as the round token and configure the zap.
As an admin I would like to update the Address of the IUserRegistry contract my Funding Factory Contract uses so that I may update/patch IUserRegistry in future funding rounds
As an admin I would like to use SimpleUserRegistry, with options to define the owner address or
BrightID as a User registration method that satisfy IUserRegistry, so that I may have easy deploy options
As an admin I would like to add and remove Funding Sources from the Funding Factory Contract so that I may update the funding sources used in future funding rounds
As an admin I would like to Set token to accept donations in Funding Factory Contract so that I may update the token donations are denominated in, in future funding rounds
Once a CLR.fund instance is deployed, it'd be great to add some "management" features for admins. One in particular would be a screen to manage requests if using the OptimisticRecipientRegistry
contract.
I'm envisioning a screen of "pending requests" that the registry owner can challenge/execute (via challengeRequest
& executeRequest
).
Another nice feature (dependent on clrfund/monorepo#344) would be the ability for owners to approve requests immediately (without having to wait for the challengePeriodDuration
).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.