contracts icon indicating copy to clipboard operation
contracts copied to clipboard

Maintainers-only Repo Driver Mirror

Open efstajas opened this issue 1 month ago • 0 comments

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 in MaintainerDriver, and 2) MaintainerDriver account IDs can easily be inferred from a RepoDriver user ID or a forge + 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 to MaintainerDriver at the same time, in the same batch transaction. The latter are scaled to cover 100%, so that MaintainerDriver 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 associated MaintainerDriver 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.

efstajas avatar Jan 08 '25 09:01 efstajas