PreferredShares

Git Sourcearrow-up-right

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.

Parameters

Name
Type
Description

initTreasury

address

params

bytes

The bespoke abi-encoded initialization arguments

__PreferredShares_init

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

Returns

Name
Type
Description

<none>

uint256

The liquidation preference value per share

assetClass

Returns the 'AssetClass' of the asset as a uint8, defined by the DataTypes.AssetClass enum

name

Returns the name of the asset as a string

symbol

Returns the symbol of the asset as a string

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"))

version

Returns the version of the implementation as a uint256

supportsInterface

ERC165 support

Structs

PreferredSharesStorage

Last updated