Updates Drafts
Goal:
Â
Standardize events for URI creation & update in interface
Allow non factory DAOs to register with the factory
- generally to enable index-ability
Â
Problem 1
current spec does not standardize the URI events, which harms index-ability
pragma solidity ^0.8.1;
/// @title EIP-4824 Common Interfaces for DAOs
/// @dev See https://eips.ethereum.org/EIPS/eip-4824
interface EIP4824 {
/// @notice A distinct Uniform Resource Identifier (URI) pointing to a JSON object following the "EIP-4824 DAO JSON-LD Schema". This JSON file splits into four URIs: membersURI, proposalsURI, activityLogURI, and governanceURI. The membersURI should point to a JSON file that conforms to the "EIP-4824 Members JSON-LD Schema". The proposalsURI should point to a JSON file that conforms to the "EIP-4824 Proposals JSON-LD Schema". The activityLogURI should point to a JSON file that conforms to the "EIP-4824 Activity Log JSON-LD Schema". The governanceURI should point to a flatfile, normatively a .md file. Each of the JSON files named above can be statically-hosted or dynamically-generated.
function daoURI() external view returns (string _daoURI);
}
Â
Proposal 1
Add standard events to interface to improve ability to index via subgraph
pragma solidity ^0.8.1;
/// @title EIP-4824 Common Interfaces for DAOs
/// @dev See https://eips.ethereum.org/EIPS/eip-4824
interface EIP4824 {
event DAOURIUpdated(address daoAddress, string daoURI);
/// @notice A distinct Uniform Resource Identifier (URI) pointing to a JSON object following the "EIP-4824 DAO JSON-LD Schema". This JSON file splits into four URIs: membersURI, proposalsURI, activityLogURI, and governanceURI. The membersURI should point to a JSON file that conforms to the "EIP-4824 Members JSON-LD Schema". The proposalsURI should point to a JSON file that conforms to the "EIP-4824 Proposals JSON-LD Schema". The activityLogURI should point to a JSON file that conforms to the "EIP-4824 Activity Log JSON-LD Schema". The governanceURI should point to a flatfile, normatively a .md file. Each of the JSON files named above can be statically-hosted or dynamically-generated.
function daoURI() external view returns (string _daoURI);
}
Â
This update will enable indexing across many factories. Indexers have to decide which contracts to trust as this event can be emitted by any smart contract
Â
Problem 2
It is hard to index DAOs that have their own factories
Â
Proposal 2
Add a minimal registration function to the factory which allows other DAO factories to call & register a URI on deployment