TokenholderVotingFacet
Inherits: IGovernanceDelegate, UnifiedGovernanceBase
Implements IGovernanceDelegate to own and control corporate wallets
OCF-based tokenholder governance with lot-based voting
Functions
onlyTokenholder
modifier onlyTokenholder();
onlyActiveGovernance
modifier onlyActiveGovernance();
authorizeWallet
function authorizeWallet(address wallet) external onlyTokenholder;
deauthorizeWallet
function deauthorizeWallet(address wallet) external onlyTokenholder;
canExecuteFor
function canExecuteFor(address wallet, bytes4 selector) public view override returns (bool);
executeOnWallet
function executeOnWallet(address wallet, bytes calldata data) external override returns (bytes memory);
configureOCFStockClasses
function configureOCFStockClasses(GovernanceStorage.OCFStockClass[] calldata stockClasses)
external
override
onlyActiveGovernance;
configureOCFProposalTypes
function configureOCFProposalTypes(GovernanceStorage.OCFProposalTypeConfig[] calldata proposalTypes)
external
override
onlyActiveGovernance;
updateStakeholderShares
function updateStakeholderShares(address stakeholder, string calldata classId, uint256 shares)
external
override
onlyActiveGovernance;
calculateVotingPower
function calculateVotingPower(address stakeholder, string memory proposalType)
public
view
override
returns (uint256 totalVotingPower);
canVetoProposal
function canVetoProposal(address stakeholder, string memory proposalType) public view override returns (bool canVeto);
castVoteOCF
function castVoteOCF(uint256 proposalId, uint8 support, string calldata proposalType) external;
castVoteWithLots
function castVoteWithLots(
uint256 proposalId,
uint8 support,
bytes32[] calldata lotIds,
address assetContract,
string calldata proposalType
) external;
vetoProposal
function vetoProposal(uint256 proposalId, string calldata proposalType) external;
createTokenholderProposal
function createTokenholderProposal(
TokenholderProposalType proposalType,
address[] memory targets,
uint256[] memory values,
bytes[] memory calldatas,
string memory description,
string memory proposalTypeName
) external onlyTokenholder returns (uint256 proposalId);
_hasGovernanceRole
function _hasGovernanceRole(address account) internal view returns (bool);
Events
TokenholderProposalCreated
event TokenholderProposalCreated(uint256 indexed proposalId, address indexed proposer, string proposalType);
LotVoteCast
event LotVoteCast(
address indexed voter, uint256 indexed proposalId, bytes32[] lotIds, uint8 support, uint256 totalWeight
);
VotingPowerDelegated
event VotingPowerDelegated(address indexed delegator, address indexed delegate, uint256 amount);
VotingPowerUndelegated
event VotingPowerUndelegated(address indexed delegator, address indexed delegate, uint256 amount);
WalletAuthorized
event WalletAuthorized(address indexed wallet);
WalletDeauthorized
event WalletDeauthorized(address indexed wallet);
Enums
TokenholderProposalType
enum TokenholderProposalType {
ShareholderResolution,
MajorTransaction,
ChartAmendment,
EquityRound,
LiquidationEvent,
DirectorElection
}
Last updated
Was this helpful?