contracts
contracts copied to clipboard
Maintainers-only Repo Driver Mirror
Behind the scenes, Ecosystems require a new Driver contract (calling this MaintainerDriver
for now, name TBD) with the following properties:
- Access control is mirrored from
RepoDriver
, meaning that 1) there is one account ID per GitHub repo URL inMaintainerDriver
, and 2)MaintainerDriver
account IDs can easily be inferred from aRepoDriver
user ID or aforge
+repoOwner/repoName
pair. - Other than the above, it's a standard driver that simply grants access to control a particular account to whoever owns a given
RepoDriver
account ID. - Our frontend, during the project claim process, will continue setting maintainer & dependency splits to
RepoDriver
split configs, but write only maintainer splits toMaintainerDriver
at the same time, in the same batch transaction. The latter are scaled to cover 100%, so thatMaintainerDriver
accounts also always split 100% of funds away from themselves. - When a project owner edits splits for their project, any changes to maintainers are also applied to the paired
MaintainerDriver
account ID. - Like this, it's possible to split / send funds either to a project and its dependencies (as is already possible today through
RepoDriver
), or only to the project's maintainers, by simply directing funds at the repo's associatedMaintainerDriver
account instead. - Further, this makes it possible to pre-fund only maintainers of a project, even before they claim their project and self-report maintainers.
This all is required because Ecosystems include "graph intelligence" within themselves, and thus need to essentially side-step Drips' inherent dependency graph. If Ecosystems were to fund standard RepoDriver
accounts, the intended allocations would be skewed, because every project node also funds dependencies that were in fact already accounted for in the original Ecosystem allocation.