Governance workflows

The following workflows illustrate how governance actions are validated and executed through Tapio's multi-layered system.

Parameter Adjustment Flow

Parameter changes flow through the constraint enforcement system:

  1. Governor sets parameter bounds in ParameterRegistry (via setBounds()) and calls other parameter functions (setSwapFee(), setMintFee(), etc.) on Keeper during initial setup.

  2. Curator calls rampA() on Keeper with desired values

  3. Keeper validates changes against ParameterRegistry bounds automatically via checkBounds()

  4. Target contracts (SPA, RampAController) receive validated parameter updates

  5. Events are emitted from both Keeper and target contracts for monitoring

Emergency Response Flow

Emergency actions bypass normal constraints for immediate effect:

  1. Guardian calls pause() or cancelRamp() functions on the Keeper contract

  2. Keeper executes emergency actions immediately without bounds checking

  3. Target SPAs enter paused state, blocking user operations but allowing admin functions

  4. PROTOCOL_OWNER must call unpause() to restore normal operations

  5. Governance events provide audit trail for emergency actions

Role Management Flow

Role permissions are managed through hierarchical access control:

  1. PROTOCOL_OWNER calls grantRole(GOVERNOR_ROLE, address) to manage governors

  2. GOVERNOR calls grantRole(CURATOR_ROLE, address) or grantRole(GUARDIAN_ROLE, address) to manage curators/guardians on Keeper.

  3. OpenZeppelin AccessControl validates caller permissions and updates role mappings

  4. Role changes take effect immediately for subsequent function calls

  5. AccessControl events provide complete audit trail of permission changes

Last updated