UnifiedGovernanceBase
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?