UnifiedGovernanceBase

Git Source

Base contract with common governance functionality

Provides upgrade-safe foundation for all governance facets

Functions

onlyValidStockClass

modifier onlyValidStockClass(string memory classId);

onlyAuthorizedSyncer

modifier onlyAuthorizedSyncer();

configureOCFStockClasses

function configureOCFStockClasses(GovernanceStorage.OCFStockClass[] calldata stockClasses) external virtual;

configureOCFProposalTypes

function configureOCFProposalTypes(GovernanceStorage.OCFProposalTypeConfig[] calldata proposalTypes) external virtual;

updateStakeholderShares

function updateStakeholderShares(address stakeholder, string calldata classId, uint256 shares) external virtual;

calculateVotingPower

function calculateVotingPower(address stakeholder, string memory proposalType) public view virtual returns (uint256);

canVetoProposal

function canVetoProposal(address stakeholder, string memory proposalType) public view virtual returns (bool);

syncFromCapTableProvider

function syncFromCapTableProvider(string calldata provider, bytes calldata ocfData) external virtual returns (bool);

approveLegalDocument

function approveLegalDocument(bytes32 documentHash, string calldata approverRole) external virtual returns (bool);

triggerAntiDilution

function triggerAntiDilution(string calldata classId, uint256 newRoundPrice, uint256 newSharesIssued)
    external
    virtual
    returns (uint256);

executeLiquidationWaterfall

function executeLiquidationWaterfall(uint256 totalProceeds) external virtual returns (uint256[] memory);

exercisePreemptiveRights

function exercisePreemptiveRights(uint256 roundId, uint256 sharesToPurchase) external payable virtual returns (bool);

_addStakeholderClass

function _addStakeholderClass(address stakeholder, string memory classId) internal;

_removeStakeholderClass

function _removeStakeholderClass(address stakeholder, string memory classId) internal;

getOCFStockClass

function getOCFStockClass(string calldata classId) external view returns (GovernanceStorage.OCFStockClass memory);

getStakeholderShares

function getStakeholderShares(address stakeholder)
    external
    view
    returns (string[] memory classIds, uint256[] memory shares);

getStorageVersion

function getStorageVersion() external pure returns (string memory);

Events

OCFStockClassConfigured

event OCFStockClassConfigured(string indexed classId, uint256 votesPerShare, bool canVoteOnBoard);

StakeholderSharesUpdated

event StakeholderSharesUpdated(address indexed stakeholder, string indexed classId, uint256 shares);

OCFProposalTypeConfigured

event OCFProposalTypeConfigured(string indexed proposalType, uint256 quorumThreshold, uint256 approvalThreshold);

ProposalVetoed

event ProposalVetoed(uint256 indexed proposalId, string indexed classId, address indexed vetoer);

CapTableSynced

event CapTableSynced(string indexed provider, bytes32 indexed syncHash);

LegalDocumentApproved

event LegalDocumentApproved(bytes32 indexed documentHash, string indexed approver);

AntiDilutionTriggered

event AntiDilutionTriggered(string indexed classId, uint256 newConversionRatio);

TransferRestricted

event TransferRestricted(address indexed from, address indexed to, string reason);

LiquidationWaterfallExecuted

event LiquidationWaterfallExecuted(uint256 totalProceeds, uint256[] distributions);

Last updated

Was this helpful?