Structs Library

Cap Table Structs

Structs (opens in a new tab) manage various aspects of the cap table, including issuers, stock classes, stakeholders, and different types of stock transactions. You'll find them here:

        • DeleteContext.sol
        • Stock.sol
        • Structs.sol
        • TxHelper.sol
      • CapTable.sol
      • CapTableFactory.sol
  • Issuer

    Represents an issuer of shares.

    • bytes16 id: Unique identifier for the issuer.
    • string legal_name: Legal name of the issuer.
    • uint256 shares_issued: Total number of shares issued.
    • uint256 shares_authorized: Total number of shares authorized.

    StockClass

    Represents a class of stock.

    • bytes16 id: Unique identifier for the stock class.
    • string class_type: Type of stock (e.g., "COMMON", "PREFERRED").
    • uint256 price_per_share: Per-share price at which this stock class was issued.
    • uint256 shares_issued: Total number of shares issued for this class.
    • uint256 shares_authorized: Total number of shares authorized for this class.

    Stakeholder

    Represents a stakeholder in the company.

    • bytes16 id: Unique identifier for the stakeholder.
    • string stakeholder_type: Type of stakeholder (e.g., "INDIVIDUAL", "INSTITUTION").
    • string current_relationship: Current relationship of the stakeholder with the company (e.g., "ADVISOR", "BOARD_MEMBER").

    ActivePosition

    Represents an active position of a stakeholder in a specific stock class.

    • bytes16 stock_class_id: Identifier of the stock class.
    • uint256 quantity: Number of shares held.
    • uint256 share_price: Price per share.
    • uint40 timestamp: Timestamp of the position.

    ShareNumbersIssued

    Represents the range of share numbers issued.

    • uint256 starting_share_number: Starting share number.
    • uint256 ending_share_number: Ending share number.

    IssuerInitialShares

    Initial share details for an issuer.

    • uint256 shares_authorized: Initial number of shares authorized.
    • uint256 shares_issued: Initial number of shares issued.

    StockClassInitialShares

    Initial share details for a stock class.

    • bytes16 id: Identifier of the stock class.
    • uint256 shares_authorized: Initial number of shares authorized for the stock class.
    • uint256 shares_issued: Initial number of shares issued for the stock class.

    InitialShares

    Initial share details for an issuer and its stock classes.

    • IssuerInitialShares issuerInitialShares: Initial shares for the issuer.
    • StockClassInitialShares[] stockClassesInitialShares: Initial shares for the stock classes.

    StockCancellation

    Represents the cancellation of stock.

    • bytes16 id: Unique identifier for the cancellation.
    • string object_type: Type of object.
    • uint256 quantity: Quantity of stock cancelled.
    • string[] comments: Optional comments.
    • bytes16 security_id: Identifier of the security.
    • string reason_text: Optional reason for cancellation.
    • bytes16 balance_security_id: Optional balance security identifier.

    StockRetraction

    Represents the retraction of stock.

    • bytes16 id: Unique identifier for the retraction.
    • string object_type: Type of object.
    • string[] comments: Optional comments.
    • bytes16 security_id: Identifier of the security.
    • string reason_text: Optional reason for retraction.

    StockReissuance

    Represents the reissuance of stock.

    • bytes16 id: Unique identifier for the reissuance.
    • string object_type: Type of object.
    • string[] comments: Optional comments.
    • bytes16 security_id: Identifier of the security.
    • bytes16[] resulting_security_ids: Identifiers of the resulting securities.
    • bytes16 split_transaction_id: Split transaction identifier (not used in MVP).
    • string reason_text: Reason for reissuance.

    StockRepurchase

    Represents the repurchase of stock.

    • bytes16 id: Unique identifier for the repurchase.
    • string object_type: Type of object.
    • string[] comments: Optional comments.
    • bytes16 security_id: Identifier of the security.
    • string consideration_text: Optional consideration text.
    • bytes16 balance_security_id: Optional balance security identifier.
    • uint256 quantity: Quantity of stock repurchased.
    • uint256 price: Price of the repurchase.

    StockAcceptance

    Represents the acceptance of stock.

    • bytes16 id: Unique identifier for the acceptance.
    • string object_type: Type of object.
    • bytes16 security_id: Identifier of the security.
    • string[] comments: Optional comments.

    IssuerAuthorizedSharesAdjustment

    Represents an adjustment to the authorized shares of an issuer.

    • bytes16 id: Unique identifier for the adjustment.
    • string object_type: Type of object.
    • uint256 new_shares_authorized: New number of authorized shares.
    • string[] comments: Optional comments.
    • string board_approval_date: Optional board approval date.
    • string stockholder_approval_date: Optional stockholder approval date.

    StockClassAuthorizedSharesAdjustment

    Represents an adjustment to the authorized shares of a stock class.

    • bytes16 id: Unique identifier for the adjustment.
    • string object_type: Type of object.
    • uint256 new_shares_authorized: New number of authorized shares.
    • string[] comments: Optional comments.
    • string board_approval_date: Optional board approval date.
    • string stockholder_approval_date: Optional stockholder approval date.

    StockIssuance

    Represents the issuance of stock.

    • bytes16 id: Unique identifier for the issuance.
    • string object_type: Type of object.
    • bytes16 security_id: Identifier of the security.
    • StockIssuanceParams params: Parameters of the stock issuance.

    StockLegendTemplate

    Represents a stock legend template.

    • bytes16 id: Unique identifier for the legend template.

    StockParamsQuantity

    Represents the parameters for stock quantity operations.

    • uint256 nonce: Nonce value.
    • uint256 quantity: Quantity of stock.
    • bytes16 stakeholder_id: Identifier of the stakeholder.
    • bytes16 stock_class_id: Identifier of the stock class.
    • bytes16 security_id: Identifier of the security.
    • string[] comments: Optional comments.
    • string reason_text: Reason for the operation.

    StockParams

    Represents the parameters for stock operations.

    • bytes16 stakeholder_id: Identifier of the stakeholder.
    • bytes16 stock_class_id: Identifier of the stock class.
    • bytes16 security_id: Identifier of the security.
    • string[] comments: Optional comments.
    • string reason_text: Reason for the operation.

    StockTransferParams

    Represents the parameters for a stock transfer.

    • bytes16 transferor_stakeholder_id: Identifier of the transferor stakeholder.
    • bytes16 transferee_stakeholder_id: Identifier of the transferee stakeholder.
    • bytes16 stock_class_id: Identifier of the stock class.
    • bool is_buyer_verified: Indicates if the buyer is verified.
    • uint256 quantity: Quantity of stock transferred.
    • uint256 share_price: Price per share.
    • uint256 nonce: Nonce value.
    • string custom_id: Custom identifier.

    StockIssuanceParams

    Represents the parameters for stock issuance.

    • bytes16 stock_class_id: Identifier of the stock class.
    • bytes16 stock_plan_id: Optional identifier of the stock plan.
    • ShareNumbersIssued share_numbers_issued: Optional range of share numbers issued.
    • uint256 share_price: Price per share.
    • uint256 quantity: Quantity of stock.
    • bytes16 vesting_terms_id: Optional identifier of the vesting terms.
    • uint256 cost_basis: Optional cost basis.
    • bytes16[] stock_legend_ids: Optional identifiers of the stock legends.
    • string issuance_type: Optional type of issuance (e.g., "RSA", "FOUNDERS_STOCK").
    • string[] comments: Optional comments.
    • string custom_id: Optional custom identifier.
    • bytes16 stakeholder_id: Identifier of the stakeholder.
    • string board_approval_date: Optional board approval date.
    • string stockholder_approval_date: Optional stockholder approval date.
    • string consideration_text: Optional consideration text.
    • string[] security_law_exemptions: Optional security law exemptions.

    StockTransfer

    Represents a stock transfer.

    • bytes16 id: Unique identifier for the transfer.
    • string object_type: Type of object.
    • uint256 quantity: Quantity of stock transferred.
    • string[] comments: Optional comments.
    • bytes16 security_id: Identifier of the security.
    • string consideration_text: Optional consideration text.
    • bytes16 balance_security_id: Optional balance security identifier.
    • bytes16[] resulting_security_ids: Identifiers of the resulting securities.

    ActivePositions

    Represents active positions held by stakeholders.

    • mapping(bytes16 => mapping(bytes16 => ActivePosition)) activePositions: Mapping of active positions by stock class and stakeholder.

    SecIdsStockClass

    Represents active security identifiers by stock class.

    • mapping(bytes16 => mapping(bytes16 => bytes16[])) activeSecurityIdsByStockClass: Mapping of active security identifiers by stock class.