Facets

Facets are an essential component of the Diamond architecture, allowing functions to execute logic on the Diamond’s storage. Each facet contract is paired with an associated implementation contract that encapsulates the logic component of the facet.


Overview

Facets serve as modular units within the Diamond architecture. Their design allows for isolated updates to specific areas of the system without necessitating a full redeployment of the contract. This modularity is key to maintaining system flexibility and ensuring that enhancements can be applied with minimal disruption.


Functionality and Implementation

Each facet is responsible for managing a distinct segment of the system’s functionality. The corresponding implementation contract handles the logic, ensuring that:

  • Facets can adjust the Diamond’s storage in a targeted manner.

  • Isolated updates are made possible, reducing the risk of widespread system impact during modifications.

  • The separation of logic and storage responsibilities streamlines both development and troubleshooting.

The following sections will delve into the specifics of SYMM’s facet contracts, outlining the functions within each and how they interact with the Diamond’s core architecture.


Last updated