StockAppreciationRight

Git Source

Inherits: IssuedAsset

Author: CapSign Inc.

A minimal contract tracking stock appreciation rights (SARs) for employees/consultants. Each lot has a "basePrice" from which appreciation is measured, plus a "quantity."

State Variables

sarTokens

mapping(bytes32 => SARToken) public sarTokens;

Functions

initialize

function initialize(address _issuer, string memory _name, string memory _prefix) public virtual initializer;

createSARToken

Creates a new SAR lot for a given holder.

function createSARToken(address holder, uint96 quantity, uint96 basePrice) external returns (bytes32 tokenId);

Parameters

Name
Type
Description

holder

address

The address receiving the SAR.

quantity

uint96

The number of SAR units granted.

basePrice

uint96

The reference price at the time of grant.

Returns

Name
Type
Description

tokenId

bytes32

The unique hash-based identifier of this SAR lot.

invalidateSARToken

Invalidates an existing SAR lot (e.g., if fully settled or the holder leaves).

function invalidateSARToken(bytes32 tokenId) external;

Events

SARTokenCreated

event SARTokenCreated(bytes32 indexed tokenId, address indexed holder, uint96 quantity, uint96 basePrice);

SARTokenInvalidated

event SARTokenInvalidated(bytes32 indexed tokenId);

Structs

SARToken

struct SARToken {
    bool isValid;
    address holder;
    uint96 quantity;
    uint96 basePrice;
}

Last updated

Was this helpful?