Skip to content

2. Break down of govtool in pillars / servicesΒ #680

@l-br1

Description

@l-br1

notes from 9th, 16th April 2024 - govtool all

Separate as much as we can, and wrap up those in pillars.


Glossary

  • πŸ›οΈ Pillar: Foundational component or module that encapsulates a specific set of logic, services, and user flows, which collectively function as a distinct entity contributing to the overall structure and functionality of the system. A pillar can live without the other pillar. These represent wide product areas. GovTool is made of multiple pillars. Within pillars we have services. For example the Delegation pillar is concerned wholly with providing all the functionality needed for DReps to register, ada holders to discover and delegate to DReps. Pillars on the product equal to services on the engineering side.

  • βš™οΈ Components - Unit of functionality within pillar, in a npm package, made up of multiple feature components. Separation of concern.

  • πŸŽ€ Wrapper - One or more pillars integrated together. Contains its own shared services which provide it's pillars with shared libraries/utilities.


πŸŽ€ Govtool Wrapper:

  • shared wallet connect
  • shared CSL
  • shared metadata service
  • fe component lib(?)
  • State management
  • (imported pillars)

GovTool breakdown

πŸ›οΈ Pillar: Governance Action Proposal

Description: Full user flows around, creating off-chain proposals, discussing them, polling interest and then submitting on-chain to become governance actions.

βš™οΈ Components:
  • proposal creation
  • proposal commenting
  • proposal polls
  • governance action on-chain submission (this relies on the metadata anchor pillar, but applies the governance action template CIP from within this pillar)

πŸ›οΈ Pillar: Voting

Description:

βš™οΈ Components:
  • DRep vote submission
    • Submit DRep vote rational
  • Display GAs
  • Display votes

πŸ›οΈ Pillar Delegation

Description:

βš™οΈ Components:
  • DRep registration
  • Delegation to DRep (/ DRep directory)

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

Status

Done

Relationships

None yet

Development

No branches or pull requests

Issue actions