PreferredShares
Inherits: MezzShares, IPreferredShares
Author: Daniel Yamagata & Naveen Ailawadi
Preferred shares are similar to Common Shares but keep track of a liquidation preference value and have a bespoke voting weight. They take preference over common shares during liquidation. Given there is a sufficient balance held by a company's treasury, Preferred Shares will receive a fixed amount of the denomination asset per share before any of the company's denomination asset is distributed pro-rata to equity holders.
This contract is intended to be deployed by a Treasury instance via the Mezz Deployer
State Variables
PreferredSharesStorageLocation
bytes32 private constant PreferredSharesStorageLocation =
0x4c4d55bf5bf083c0390e26954b0513b7e3733262a658373aa44cfed72f244700;
Functions
_getPreferredSharesStorage
function _getPreferredSharesStorage() internal pure returns (PreferredSharesStorage storage $);
constructor
constructor(address _mezzHub) MezzShares(_mezzHub);
init
Initializes the asset state in a bespoke manner.
function init(address initTreasury, bytes memory params) external virtual override(IAsset, Asset) initializer;
Parameters
initTreasury
address
params
bytes
The bespoke abi-encoded initialization arguments
__PreferredShares_init
function __PreferredShares_init(address initTreasury, bytes memory params) internal virtual onlyInitializing;
liquidationPreferenceValue
Returns the liquidation preference value per share. The value corresponds to how much of the denomination asset per share will be distributed during a company's liquidation
function liquidationPreferenceValue() public view virtual returns (uint256);
Returns
<none>
uint256
The liquidation preference value per share
assetClass
Returns the 'AssetClass' of the asset as a uint8, defined by the DataTypes.AssetClass enum
function assetClass() public pure virtual override(Asset, IAsset) returns (uint8);
name
Returns the name of the asset as a string
function name() public view override(MezzShares, IAsset) returns (string memory);
symbol
Returns the symbol of the asset as a string
function symbol() public view override(MezzShares, IAsset) returns (string memory);
coreId
Returns the coreId of the implementation as a bytes32
The core ID is the keccak256 hash of the contract name followed by a version under the following syntax: "mezzanine.coreId.ContractName.vX" For example, the core ID of the 2nd version of the Treasury would be the following: keccak256(abi.encodePacked("mezzanine.coreId.Treasury.v2"))
function coreId() public pure virtual override(MezzShares, ICredentialed) returns (bytes32);
version
Returns the version of the implementation as a uint256
function version() public pure virtual override(MezzShares, ICredentialed) returns (uint256);
supportsInterface
ERC165 support
function supportsInterface(bytes4 interfaceId) public view virtual override(MezzShares, IERC165) returns (bool);
Structs
PreferredSharesStorage
struct PreferredSharesStorage {
uint256 _liquidationPreferenceValue;
}
Last updated