Skip to content

Contracts architecture

Lorenzo Gigli edited this page Jan 16, 2023 · 4 revisions
classDiagram
    My3SecToken --|> ERC20Votes
    My3SecToken --|> ERC20
    My3SecToken --> My3SecGovernance : uses
    
    RewardsManager --|> RewardsManagerInterface
    RewardsManager --> My3SecToken: uses
    RewardsManager --> CertificateNFT: uses

    My3SecGovernance --|> Governor
    My3SecGovernance --> EnergyToken: uses
    My3SecGovernance --> CertificateFactory: uses
    My3SecGovernance --> RewardsManager: uses
    My3SecGovernance --> Skill: creates

    My3SecGovernance --|> ERC20
    
    CertificateFactory --> CertificateNFT: creates
    
    Organization --|> AccessControl
    Organization --> CertificateFactory: uses
    Organization --> My3SecHub: registers

    OrganizationFactory --> Organization: creates
   
    CertificateNFT --|> ERC721
    CertificateNFT --> My3SecHub: creates

    class ERC20Votes {
      <<abstract>> 
    }

    class ERC20 {
      <<abstract>>  
    }

    class ERC721 {
       <<abstract>> 
    }
    
    class Governor {
       <<abstract>>
    }

    class AccessControl {
      <<interface>>
    }

    class RewardsManagerInterface {
      <<interface>>
    }
     
    class My3SecToken {
        
    }

    class EnergyToken {
        
    }

    class My3SecGovernance {
        
    }
    
    class RewardsManager {
        
    }
    
    class CertificateNFT {

    }

    class Organization {

    }

    class OrganizationFactory {

    }

    class My3SecHub {

    } 

    class EnergyStaking {

    }
    
    class Project {

    }

    class Skill {
    
    }
    
    class IdentityResolver {
    
    }


Loading
Clone this wiki locally