Skip to content

Modules

Rahul Saxena edited this page Aug 14, 2023 · 8 revisions

This contains documentation about contracts related to the modules.

Contents

  • Module
    • The base contract for modules
  • MilestoneManager
    • A module to manage milestones for a proposal
  • PaymentClient
    • A mixin that enables modules to create payment orders that are processable by the IPaymentProcessor
  • SimplePaymentProcessor
    • A module to process payment orders from other modules
  • SingleVoteGovernance
    • An implementation of a governance module with a single-vote system
  • RoleAuthorizer
    • The Role Authorizer module is a governance module that provides the option to modules to use self-governance and define custom roles or use the role structure of the orchestrator itself.
  • TokenGatedRoleAuthorizer
    • This Module expands on the RoleAuthorizer by adding the possibility to set a role as "Token-Gated". Instead of whitelisting a user address, the whitelisted addresses will correspond to a token address, and on authorization the contract will check on ownership of one of the specified tokens.
  • RebasingFundingManager
    • The Rebasing Funding Manager is a module in the form of a Rebasing ERC20 token, that accepts deposits of the Orchestrator tokens and maintains internal accounting while syncing it with the orchestrator token supply.
  • BountyManager
    • A module to manage bounties. This includes being able to add and edit bounties, and to be able to claim those bounties by valid contributors after verification by the VerifyAdmin.
  • RecurringPaymentManager
    • A logic module to create recurring payment orders and process them using the payment processor of choice. Enables epoch-based payment order vesting, where all previously valid vested payment orders can be triggered entirely or selectively.
  • StreamingPaymentProcessor
    • A module to process payment orders from other modules. This module enables the linear vesting curve.
  • MetadataManager
    • The MetadataManager is used to set the metadata for the orchestrator, team, and manager.