-
Notifications
You must be signed in to change notification settings - Fork 25
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DAOTracker: A Solution For Indexing New DAOs #640
Conversation
It looks like a good solution to me, and the code seems good as well, but since Oren is on vacation this week I prefer to wait for him with it since it's a relatively big change. |
how this is different from the daoregistery solution at https://github.com/daostack/arc-hive ? |
Here's something you had said in our discussion that's linked to above: "The daoregistery is used by alchemy to fillet daos ,you can register dao on any time... not sure that tie that to indexing the dao is best option.". I definitely agree with this, I don't think coupling a DAO registry with indexing makes sense. |
After talking with @orenyodfat (who spoke with @jellegerbrandy), it looks like a better / safer solution for indexing new DAOs is standing up a new DAO specific subgraph for them. I wrote something about how this might be done using Apollo Federations here: daostack/subgraph#270 Please let me know what your thoughts are and feel free to close this PR if you've decided to not take the "DAOTracker approach". |
@orenyodfat @jellegerbrandy @leviadam Anything I can do to help get this merged? Once it's merged, I can work on adding support in the migration scripts, and then the subgraph. Then newly deployed DAOs will be automatically in Alchemy :) |
[Problem]
As discussed in this thread, we need a way to index newly deployed DAOs that satisfies the following constraints:
DAORegistry
.DaoCreator
contract or theUController
.[Solution]
Create a new on-chain "source of truth" that dictates what the subgraph is indexing. All DAOs that wish to be cached will need to call the
track(avatar, controller)
method on this contract immediately after they've been created to ensure no events will be lost. This should typically happen after Avatar, DAOToken, Reputation, and Controller have all been deployed, and no other setup actions have taken place.[Question]
Rename
DAOTracker
toDAONetwork
?[Contract Explained]
track(avatar, controller)
: read description commented hereblacklist(avatar)
: read description commented herereset(avatar)
: read description commented here[This is part 1 of a 3 part update]