CapSign
  • Home
  • Compliance Framework
  • Interactive Demos
    • Overview
  • Create an Account
  • Identity Verification
  • Investor Qualification
  • Guides for Individuals
    • Invest in an Offering
  • Guides for Corporations
    • Create a Share Class
    • Authorize Shares
    • Issue Shares
    • Upload a Document
    • Create a Document Template
    • Create an Offering
    • Manage Your Offering
    • Add a Trusted Attestor
    • Approve an Investment
  • API Reference
    • Overview
    • Compliance
      • Exemptions
        • FederalExemption.sol
          • FederalExemption
        • RegAExemption.sol
          • RegAExemption
        • RegCFExemption.sol
          • RegCFExemption
        • RegDExemption.sol
          • RegDExemption
        • Rule144Exemption.sol
          • Rule144Exemption
        • Rule701Exemption.sol
          • Rule701Exemption
      • IComplianceModule.sol
        • IComplianceModule
      • Vesting.sol
        • Vesting
    • Currencies
      • WETH.sol
        • WETH
      • CMX.sol
        • CMX
      • USD.sol
        • USD
    • Governance
      • BoardManagement.sol
        • BoardManagement
      • ProxyVoting.sol
        • ProxyVoting
    • Identity
      • AttestationRegistry.sol
        • AttestationRegistry
      • ERC20PaymentResolver.sol
        • ERC20PaymentResolver
      • Roles
        • BaseRoles.sol
          • BaseRoles
        • PrivateOfferingRoles.sol
          • PrivateOfferingRoles
        • PublicOfferingRoles.sol
          • PublicOfferingRoles
      • Whitelist.sol
        • Whitelist
    • Issuance
      • Compensation
        • CompensationFactory.sol
          • CompensationFactory
        • EmployeeStockOptionCompensation.sol
          • EmployeeStockOptionCompensation
        • RestrictedStockAwardCompensation.sol
          • RestrictedStockAwardCompensation
        • StockAppreciationRightsCompensation.sol
          • StockAppreciationRightCompensation
        • WarrantCompensation.sol
          • WarrantCompensation
      • Offering
        • ExemptOffering.sol
          • ExemptOffering
        • InitialPublicOffering.sol
          • InitialPublicOffering
        • Offering.sol
          • Offering
        • OfferingFactory.sol
          • OfferingFactory
        • Rule506bOffering.sol
          • Rule506bOffering
        • Rule506cOffering.sol
          • Rule506cOffering
        • TenderOffer.sol
          • TenderOffer
    • Investor Relations
      • DividendDistributor.sol
        • DividendDistributor
      • SubscriptionManager.sol
        • SubscriptionManager
        • IERC20
    • Ledgers
      • Ledger.sol
        • Ledger
      • LedgerManager.sol
        • LedgerManager
      • SettlementManager.sol
        • SettlementManager
    • Marketplace
      • AuctionMarket.sol
        • AuctionMarket
      • BaseMarket.sol
        • BaseMarket
      • BulletinBoardMarket.sol
        • BulletinBoardMarket
      • Contents
        • BaseCollateral.sol
          • BaseCollateral
        • ERC20Collateral.sol
          • ERC20Collateral
        • NativeCollateral.sol
          • NativeCollateral
      • LiquidityPoolMarket.sol
        • LiquidityPoolMarket
      • Contents
        • BaseMargin.sol
          • BaseMargin
        • MarginAccount.sol
          • MarginAccount
      • MarginOrderBookMarket.sol
        • MarginOrderBookMarket
      • OTCMarket.sol
        • OTCMarket
      • OrderBookMarket.sol
        • OrderBookMarket
      • Contents
        • BrokerNetSettlement.sol
          • BrokerNetSettlement
        • CustodyBridge.sol
          • CustodyBridge
        • DirectSettlement.sol
          • DirectSettlement
        • ListingRegistry.sol
          • ListingRegistry
    • Tokenization
      • Actions
        • CorporateActionManager.sol
          • CorporateActionManager
          • ICapitalAsset
        • ICorporateActionManager.sol
          • ICorporateActionManager
      • Assets
        • Asset.sol
          • Asset
          • Asset
        • ClosedEndFundClass.sol
          • ClosedEndFundClass
        • ClosedEndFundManager.sol
          • ClosedEndFundManager
        • EmployeeStockOption.sol
          • EmployeeStockOption
        • Contents
          • IAsset.sol
            • IAsset
          • IClosedEndFundClass.sol
            • IClosedEndFundClass
          • IIssuedAsset.sol
            • IIssuedAsset
          • IOpenEndFundClass.sol
            • IOpenEndFundClass
          • IShareClass.sol
            • IShareClass
        • IssuedAsset.sol
          • IssuedAsset
        • OpenEndFundClass.sol
          • OpenEndFundClass
        • OpenEndFundManager.sol
          • OpenEndFundManager
        • ShareClass.sol
          • ShareClass
        • StockAppreciationRight.sol
          • StockAppreciationRight
        • Warrant.sol
          • Warrant
      • TokenFactory.sol
        • TokenFactory
    • Utilities
      • PriceFeed.sol
        • SimplePriceFeed
        • IPriceFeed
    • Valuations
      • ValuationRegistry.sol
        • ValuationRegistry
    • Wallet
      • HookedSmartWallet.sol
        • HookedSmartWallet
      • Wallet.sol
        • Wallet
Powered by GitBook
On this page
  • Functions
  • processSpinOff
  • forcedBuyback
  • processMerger
  • setOwner
  • setTokenManager
  • Events
  • SpinOffProcessed

Was this helpful?

  1. API Reference
  2. Tokenization
  3. Actions
  4. ICorporateActionManager.sol

ICorporateActionManager

PreviousICorporateActionManager.solNextAssets

Last updated 3 months ago

Was this helpful?

Functions

processSpinOff

Processes a spin-off by adjusting the old lot and creating a new one.

function processSpinOff(bytes32 oldTokenId, uint96 spinOffQuantity, uint96 spinOffCostBasis, string calldata reason)
    external
    returns (bytes32 newTokenId);

Parameters

Name
Type
Description

oldTokenId

bytes32

The ID of the existing lot to be adjusted.

spinOffQuantity

uint96

The quantity of the spin-off.

spinOffCostBasis

uint96

The cost basis of the spin-off.

reason

string

The reason for the spin-off.

Returns

Name
Type
Description

newTokenId

bytes32

The ID of the newly created lot.

forcedBuyback

Performs a forced buyback by adjusting the old lot and creating a new one.

function forcedBuyback(
    bytes32 oldTokenId,
    uint96 buybackQuantity,
    uint96 leftoverQuantity,
    uint96 leftoverCostBasis,
    string calldata reason
) external returns (bytes32 newTokenId);

Parameters

Name
Type
Description

oldTokenId

bytes32

The ID of the existing lot to be adjusted.

buybackQuantity

uint96

The quantity to buy back.

leftoverQuantity

uint96

The quantity remaining after buyback.

leftoverCostBasis

uint96

The cost basis of the leftover quantity.

reason

string

The reason for the buyback.

Returns

Name
Type
Description

newTokenId

bytes32

The ID of the newly created lot.

processMerger

Processes a merger by adjusting multiple old tokens and creating new ones.

function processMerger(
    bytes32[] calldata oldTokenIds,
    uint96 newQuantityPerShare,
    uint96 newCostBasisPerShare,
    string calldata reason
) external;

Parameters

Name
Type
Description

oldTokenIds

bytes32[]

An array of IDs of the existing tokens to be merged.

newQuantityPerShare

uint96

The new quantity per share after merger.

newCostBasisPerShare

uint96

The new cost basis per share after merger.

reason

string

The reason for the merger.

setOwner

Sets a new owner for the contract.

function setOwner(address newOwner) external;

Parameters

Name
Type
Description

newOwner

address

The address of the new owner.

setTokenManager

Sets a new TokenManager contract address.

function setTokenManager(address _lotManager) external;

Parameters

Name
Type
Description

_lotManager

address

The address of the new TokenManager.

Events

SpinOffProcessed

event SpinOffProcessed(
    bytes32 indexed oldTokenId,
    bytes32 indexed newTokenId,
    address indexed holder,
    uint96 newQuantity,
    uint96 newCostBasis,
    string info
);
Git Source